using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace SearchDocs
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void buttonSelect_Click(object sender, EventArgs e)
{
if (this.folderBrowserDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
this.txtPath.Text = this.folderBrowserDialog1.SelectedPath;
}
}
private void buttonCollect_Click(object sender, EventArgs e)
{
//所有文件名字包括"新建文本文档" 空白文件删除,内容文件更名,更名规则为创建时间_文件第一行的最多50个字符。
//文件内容大于20行的单独存放小于20行的合并 减少文件数量 归纳到一个记录管理工具中
string Find = "新建文本文档";
if (string.IsNullOrEmpty(this.txtPath.Text.Trim()))
{
MessageBox.Show("目录不能为空");
return;
}
if (!Directory.Exists(this.txtPath.Text.Trim()))
{
MessageBox.Show("目录无效");
return;
}
CopyDir(this.txtPath.Text.Trim(), AppDomain.CurrentDomain.BaseDirectory + "\\文本\\");
MessageBox.Show("完成");
}
public string ReplaceSpecialCharacterV2(string str)
{
StringBuilder titleBuilder = new StringBuilder(str);
foreach (char rInvalidChar in Path.GetInvalidFileNameChars())
titleBuilder = titleBuilder.Replace(rInvalidChar.ToString(), string.Empty);
return titleBuilder.ToString();
}
private void CopyDir(string srcPath, string aimPath)
{
// 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组
// 如果你指向copy目标文件下面的文件而不包含目录请使用下面的方法
// string[] fileList = Directory.GetFiles(srcPath);
string[] fileList = System.IO.Directory.GetFileSystemEntries(srcPath);
// 遍历所有的文件和目录
foreach (string file in fileList)
{
// 先当作目录处理如果存在这个目录就递归Copy该目录下面的文件
if (System.IO.Directory.Exists(file))
{
CopyDir(file, aimPath);
}
// 否则直接Copy文件
else
{
string filename = string.Empty;
string content = string.Empty;
filename = System.IO.Path.GetFileName(file);
if (!filename.EndsWith(".csproj.FileListAbsolute.txt") && !filename.EndsWith(".AppTest.txt"))
{
if (System.IO.Path.GetExtension(file).ToLower() == ".txt")
{
content = System.IO.File.ReadAllText(file, TxtFileEncoder.GetEncoding(file)).Trim();
//c#判断文件是否为空
if (content.Length == 0)
{
//删除空文件
}
else
{
if (content.Length > 200)
{
if (filename.Contains("新建文本文档"))
{
//c#读取第一行
string firstline = string.Empty;
if (content.Contains("\r"))
{
firstline = ReplaceSpecialCharacterV2(content.Substring(0, content.IndexOf("\r")));
}
else
{
firstline = ReplaceSpecialCharacterV2(content);
}
if (firstline.Length > 50)
{
firstline = firstline.Substring(0, 50);
}
System.IO.File.Copy(file, aimPath + System.IO.File.GetLastWriteTime(file).ToString("yyyy_MM_dd_") + firstline + ".txt", true);
}
else
System.IO.File.Copy(file, aimPath + System.IO.File.GetLastWriteTime(file).ToString("yyyy_MM_dd_") + System.IO.Path.GetFileName(file), true);
}
else
{
File.AppendAllText(aimPath + "总结.txt", "\r\n--------------------------------------\r\n" + System.IO.Path.GetFileName(file) + "\r\n" + content);
}
}
System.IO.File.Delete(file);
}
}
}
}
}
}
}