using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace DeleteOrCoptSomeFileByTxt
{
class Program
{
public enum Type
{
Copy,
DeleteByFolder,
DeleteByTxt,
Move
}
static void Main()
{
const string txtPath = @"C:\Users\qingping.li\Desktop\较乱.txt";
const string excelStoragePath = @"\\10.10.129.77\巨潮下载测试\2017\20170630\";
const string excelFileNewPath = @"\\10.10.129.77\巨潮下载测试\2017\20170630\流通\";
string[] excelFiles = Directory.GetFiles(excelStoragePath);
string txt = File.ReadAllText(txtPath, Encoding.Default);
Type type = Type.Copy;
switch (type)
{
case Type.Copy:
CopyFileByTxt(txt, excelFiles, excelFileNewPath);
Console.WriteLine("复制成功");
break;
case Type.DeleteByFolder:
DelteFileByAnotherFolder();
Console.WriteLine("删除成功");
break;
case Type.DeleteByTxt:
DelteFileByTxt(txt, excelFiles);
Console.WriteLine("删除成功");
break;
case Type.Move:
MoveFile(txt, excelFiles, excelFileNewPath);
Console.WriteLine("移动成功");
break;
}
Console.ReadKey();
}
public static void MoveFile(string txt, string[] excelFiles, string excelFileNewPath)
{
string pattern = GetPattern(txt);
foreach (string excelFile in excelFiles)
{
try
{
// 用来复制的
string name = excelFile.Split('\\')[excelFile.Split('\\').Length - 1];
if (Regex.IsMatch(name, pattern))
{
if (!Directory.Exists(excelFileNewPath))
Directory.CreateDirectory(excelFileNewPath);
if (!File.Exists(excelFileNewPath + name))
{
File.Move(excelFile, excelFileNewPath + name);
Console.WriteLine("移动文件到:{0}", excelFileNewPath + name);
}
}
}
catch
{
continue;
}
}
}
public static void DelteFileByTxt(string txt, string[] excelFiles)
{
string pattern = GetPattern(txt);
foreach (string excelFile in excelFiles)
{
// 用来复制的
string name = excelFile.Split('\\')[excelFile.Split('\\').Length - 1];
if (Regex.IsMatch(name, pattern))
{
try
{
File.Delete(excelFile);
}
catch
{
continue;
}
}
}
}
public static void CopyFileByTxt(string txt, string[] excelFiles, string excelFileNewPath)
{
string pattern = GetPattern(txt);
foreach (string excelFile in excelFiles)
{
try
{
// 用来复制的
string name = excelFile.Split('\\')[excelFile.Split('\\').Length - 1];
if (Regex.IsMatch(name, pattern))
{
if (!Directory.Exists(excelFileNewPath))
Directory.CreateDirectory(excelFileNewPath);
if (!File.Exists(excelFileNewPath + name))
{
File.Copy(excelFile, excelFileNewPath + name);
Console.WriteLine("移动文件到:{0}", excelFileNewPath + name);
}
}
}
catch
{
continue;
}
}
}
public static void DelteFileByAnotherFolder()
{ //删除文件
const string folderDelteJudge = @"\\10.10.129.77\巨潮下载测试\2017\201611111111\乱\";
string[] folderDelteJudgeArray = Directory.GetFiles(folderDelteJudge);
foreach (string excelFile in folderDelteJudgeArray)
{
const string foldeNeedDelte = @"\\10.10.129.77\巨潮下载测试\2017\20161212\";
string name = excelFile.Split('\\')[excelFile.Split('\\').Length - 1];
if (!Directory.Exists(foldeNeedDelte))
Directory.CreateDirectory(foldeNeedDelte);
if (File.Exists(foldeNeedDelte + name))
{
try
{
File.Delete(foldeNeedDelte + name);
Console.WriteLine("删除文件:{0}", foldeNeedDelte + name);
}
catch
{
continue;
}
}
}
}
public static string GetPattern(string txt)
{
txt = txt.Replace(",", "&");
string[] num = txt.Split('&');
string pattern = "";
//拼接正则
foreach (string str in num)
{
pattern += str;
}
if (pattern.EndsWith("|"))
pattern = pattern.Substring(0, pattern.LastIndexOf("|"));
return pattern;
}
}
}
C#操作文件的相关方法
最新推荐文章于 2024-05-28 19:18:54 发布