1、获取某个文件夹路径下的所有文件
给定路径 D:/CODE/C#_testpath 下的文件,以下代码使用到命名空间:using System.IO;
//给定一个测试文件夹路径
string path = "D:/CODE/C#_testpath";
//或者获得当前运行程序的路径D:\CODE\C#\changeFile\changeFile\bin\Debug\
string rootPath = Directory.GetCurrentDirectory();
//获取路径下的所有文件
DirectoryInfo root = new DirectoryInfo(path);
//数组
FileInfo[] files = root.GetFiles();
//转换为list
List<FileInfo> listfiles = files.ToList();
//输出查看结果
foreach (FileInfo file in listfiles)
{
//获取的是当前文件的全路径名
string fileFullName = file.FullName;
//获取的是文件的文件名
string fileName = file.Name;
Console.WriteLine("文件全路径:" + fileFullName);
Console.WriteLine("文件名:" + fileName);
Console.WriteLine("\n");
}
输出结果:
附加:获取该文件夹下的子目录,返回类型为DirectoryInfo。
DirectoryInfo[] dics = root.GetDirectories();
2、删除文件
System.IO.File.Delete(文件全路径);
//使用for循环遍历
for (int i = 0; i < listfiles.Count; i++)
{
//删除指定文件
if (listfiles[i].Name == "123.txt")
{
//删除文件
System.IO.File.Delete(listfiles[i].FullName);
Console.WriteLine("删除成功!");
}
}
3、修改文件名
1)、判断文件是否存在
fullfileName:文件全路径
返回值:存在(True)、不存在(False)
bool isExists = File.Exists(fullfileName);
2)、判断文件是否包含指定字符
不需要全路径,给定文件名即可
返回值:存在(True)、不存在(False)
string fileName = file.Name;
bool ishave = fileName.Contains("123");
3)、修改文件名
srcfileName:源文件路径
destfileName:目标文件路径
File.Move(srcfileName, destfileName);//注意需要给定全路径
示例:判断路径下的文件是否包含123的文件名,如果有则把文件名改为ddd
//使用迭代器遍历
foreach (FileInfo file in listfiles)
{
string fileName = file.Name;
//判断文件名是否包含某个指定字符
bool ishave = fileName.Contains("123");
Console.WriteLine("文件名" + fileName);
Console.WriteLine(ishave);
Console.WriteLine("\n");
//判断文件名字是否包含某特定字符,是的话给改名
if (ishave)
{
//文件改名
string srcfileName = file.FullName;
//file.Extension: 文件后缀
string destfileName = file.Directory.FullName + "/ddd" + file.Extension;
File.Move(srcfileName, destfileName);
}
}
结果: