0
点赞
收藏
分享

微信扫一扫

c#实现文件批处理:剪切、复制、删除、改名、分类等

全栈工程师开发手册 (作者:栾鹏)
​​ c#教程全解​​

c#实现文件批处理,包含批量剪切、复制、删除、按时间分类到不同文件夹,按格式分类到不同文件夹,以及批量修改名称等等。

c#批量剪切文件函数

/// <summary>
/// 文件剪切、改名操作
/// </summary>
/// <param name="srcdir">源文件夹</param>
/// <param name="desdir">目的文件夹</param>
public static void file_cut(string srcdir,string desdir)
{
DirectoryInfo thefolder = new DirectoryInfo(srcdir);
foreach (FileInfo nextfile in thefolder.GetFiles())
{
try
{
string filename = nextfile.Name;
string filefullname = nextfile.FullName;
string mudi = desdir + "\\" + filename;
File.Move(filefullname,mudi);
}
catch (System.Exception ex)
{
System.Console.WriteLine(ex.ToString());
}
}
}

c#批量复制文件函数

/// <summary>
/// 文件复制函数
/// </summary>
/// <param name="srcdir">源文件夹</param>
/// <param name="desdir">目的文件夹</param>
public static void file_copy(string srcdir, string desdir)
{
DirectoryInfo thefolder = new DirectoryInfo(srcdir);
foreach (FileInfo nextfile in thefolder.GetFiles())
{
try
{
string filename = nextfile.Name;
string filefullname = nextfile.FullName;
string mudi = desdir + "\\" + filename;
//如果目的文件已经存在
if (File.Exists(mudi))
{
File.Delete(mudi);
}
else
{
File.Copy(filefullname, mudi);
}
}
catch (System.Exception ex)
{
System.Console.WriteLine(ex.ToString());
}
}
}

c#批量删除文件函数

public static void file_delete(string srcdir)
{
DirectoryInfo thefolder = new DirectoryInfo(srcdir);
foreach (FileInfo nextfile in thefolder.GetFiles())
{
try
{
string filename = nextfile.Name;
string filefullname = nextfile.FullName;
File.Delete(filefullname);
}
catch (System.Exception ex)
{
System.Console.WriteLine(ex.ToString());
}
}
}

c#批量按时间将文件分类到对应的文件夹

/// <summary>
/// 文件按时间分类到不同的文件夹
/// </summary>
/// <param name="srcdir">源文件夹</param>
/// <param name="desdirtemp">目的文件夹</param>
public static void file_classify_date(string srcdir, string desdir)
{
DirectoryInfo thefolder = new DirectoryInfo(srcdir);
foreach (FileInfo nextfile in thefolder.GetFiles())
{
try
{
string filename = nextfile.Name;
string filefullname = nextfile.FullName;
string creattime = nextfile.CreationTime.Year.ToString() + "_" + nextfile.CreationTime.Month.ToString() + "_" + nextfile.CreationTime.Day.ToString();
string desdirtemp = desdir + "\\" + creattime;
if (!Directory.Exists(desdirtemp))
{
Directory.CreateDirectory(desdirtemp);
}
string mudifile = desdirtemp + "\\" + filename;
//如果目的文件已经存在
if (File.Exists(mudifile))
{
File.Delete(mudifile);
}
else
{
//移动文件函数
File.Move(filefullname, mudifile);
}
}
catch (System.Exception ex)
{
System.Console.WriteLine(ex.ToString());
}
}
}

c#批量按格式将文件分类到对应到文件夹

/// <summary>
/// 文件按格式分类到不同的文件夹
/// </summary>
/// <param name="srcdir">源文件夹</param>
/// <param name="desdirtemp">目的文件夹</param>
public static void file_classify_format(string srcdir, string desdir)
{
DirectoryInfo thefolder = new DirectoryInfo(srcdir);
foreach (FileInfo nextfile in thefolder.GetFiles())
{
try
{
string filename = nextfile.Name;
string filefullname = nextfile.FullName;
string filetype = Path.GetExtension(filefullname);
string desdirtemp = desdir+ "\\" + filetype;
if (!Directory.Exists(desdirtemp))
{
Directory.CreateDirectory(desdirtemp);
}
string mudifile = desdirtemp + "\\" + filename;
//如果目的文件已经存在
if (File.Exists(mudifile))
{
File.Delete(mudifile);
}
else
{
//移动文件函数
File.Move(filefullname, mudifile);
}
}
catch (System.Exception ex)
{
System.Console.WriteLine(ex.ToString());
}
}
}

c#批量修改文件名,

/// <summary>
/// 所有文件名添加指定模式的字符串
/// </summary>
/// <param name="dirpath">源文件夹</param>
/// <param name="setstr">修改模式</param>
/// <param name="append">名称是追加还是修改</param>
public static void file_name_change(string dirpath, string set, bool append)
{
if (set == "")
{
throw new Exception("修改文件名不能为空");
return;
}
DirectoryInfo thefolder = new DirectoryInfo(dirpath);
int index = 0;
foreach (FileInfo nextfile in thefolder.GetFiles())
{
try
{
string filename = nextfile.Name;
string filefullname = nextfile.FullName;
string yuandir = filefullname.Substring(0, filefullname.LastIndexOf("\\"));
string filetype = Path.GetExtension(filefullname);
filename = filename.Replace(filetype, "");
if (!append)
{
filename=""; //如果不使用追加模式,则清空文件名
}
if (set == "*date")
{
string mudifile = yuandir + "\\" + filename + DateTime.Now.ToString("yyyy-MM-dd") + filetype;
Directory.Move(filefullname, mudifile);
}
else if (set == "*time")
{
string mudifile = yuandir + "\\" + filename + DateTime.Now.ToString("dd-mm-ss")+ filetype;
Directory.Move(filefullname, mudifile);
}
else if (set == "*date_time")
{
string mudifile = yuandir + "\\" + filename + DateTime.Now.ToString("yyyy-MM-dd-mm-ss") + filetype;
Directory.Move(filefullname, mudifile);
}
else if (set == "*number")
{
string mudifile = yuandir + "\\" + filename +Convert.ToString(index)+filetype;
index++;
Directory.Move(filefullname, mudifile);
}
else
{
string mudifile = yuandir + "\\" + filename + set + filetype;
Directory.Move(filefullname, mudifile);
}
}
catch (System.Exception ex)
{
System.Console.WriteLine(ex.ToString());
}
}
}


举报

相关推荐

0 条评论