我正在使用 SharpDevelop 编写 C# 程序(不是控制台)。我想删除指定目录中的文件,但能够排除开头、结尾或包含某些单词的文件。
要完全删除我正在使用的文件夹中的所有文件:
private void clearFolder(string FolderName)
{
DirectoryInfo dir = new DirectoryInfo(FolderName);
foreach(FileInfo fi in dir.GetFiles())
{
fi.Delete();
}
foreach (DirectoryInfo di in dir.GetDirectories())
{
clearFolder(di.FullName);
di.Delete();
}
}
我像这样使用它
ClearFolder("NameOfFolderIWantToEmpty");
有没有办法修改它,以便我可以删除所有文件和目录,除了那些包含特定单词的文件和目录?
就像是 :
CleanFolder(FolderToEmpty,ExcludeAllFileAndDirectoriesContaingThisPhrase);
所以如果我这样做了
CleanFolder("MyTestFolder","_blink");
它不会删除名称如下的文件和目录
_blinkOne (file)
Test_blineGreen (file)
Test_blink5 (directory)
_blinkTwo (file within the Text_blink5 directory)
Folder_blink (empty directory)
但会删除文件和目录,如
test (file)
test2 (directory)
test3_file (file within test2 directory)
test4 (empty directory)
我怀疑我可能必须遍历每个文件和目录,一次检查一个以查找匹配的过滤器,如果不匹配则将其删除,但我不知道该怎么做。
有什么FileInfo()
,DirectoryInfo()
也许?
有人可以通过提供一个工作示例来提供帮助吗?(最好是上面的修改版本,但是如果需要新的方法,只要不需要外部dll就可以了。