我需要在存在其他文件时删除文件。
Directory.GetFiles(dirName)
.Select(f => new FileInfo(f))
.Where(f => f.exists)
.ToList()
.ForEach(f => f.Delete());
这是自动删除文件的工作代码,但我需要修改它以删除其他目录中的其他文件。
directory2中的文件名称略有不同。 directory1中的文件名= MyFileName() 但是directory2中的文件名= MyFileName
E.g。在" C:// folder123" 存在文件" File123()" 我需要在" C://我的文档/文件夹456" 中检测到并删除文件" File123"
//修改
我已经写了一些东西,我认为它应该可行,但我必须弄清楚应用程序池的问题来测试它:
string path = "directory2";
Directory.GetFiles("directory1")
.Where(f => f.Contains("()") == true)
.Select(f => f.TrimEnd(')', '('))
.ToList();
File.Delete(path);
答案 0 :(得分:0)
这个解决方案怎么样?
string sourcePath = "c:\\folder123\file123()";
string secondPath = "c:\\documents\\folder456";
if(File.Exists(sourcePath))
{
FileInfo sInfo = new FileInfo(sourcePath);
string dFilePath = Path.Combine(secondPath, sInfo.Name.Replace("()",""));
if(File.Exists(dFilePath))
File.Delete(dFilePath);
}
我把它写在我的iPad上,所以我希望它是对的。也许字符串"()"需要逃脱字符。