我有一个类的数组,其中一个成员是文件的完整路径。我需要删除数组中未包含的所有文件。按惯例,我正在使用传统的比较和删除方法。我需要知道是否有任何快速的方法来完成这一点。 我听说可以使用Linq完成,但是我没有关于linq的知识。在目录中搜索和删除文件的最快方法
我的类结构如下所示。我有一个ImageDetails的数组。我有一个ImageDetails的数组。该PathToFile包含完整路径
}
我有一个类的数组,其中一个成员是文件的完整路径。我需要删除数组中未包含的所有文件。按惯例,我正在使用传统的比较和删除方法。我需要知道是否有任何快速的方法来完成这一点。 我听说可以使用Linq完成,但是我没有关于linq的知识。在目录中搜索和删除文件的最快方法
我的类结构如下所示。我有一个ImageDetails的数组。我有一个ImageDetails的数组。该PathToFile包含完整路径
}
可以使用除()来处理这个问题:
var filesToDelete = Directory.GetFiles(Path.GetDirectoryName(yourClass.FilePath)).Except(yourClass.TheArray);
为什么你需要比较?如果你有完整的文件名,那么
File.Delete(fileName);
是你所需要的。文件IO可能是最慢的部分,所以我不认为Linq会对性能产生很大的影响。
如果该文件可能不存在,然后检查,首先:
if (File.Exists(fileName))
{
File.Delete(fileName);
}
编辑:我明白你的意思,你要删除的文件,如果它是不是在数组中。我读你的问题意味着该目录不包含在数组中。
尽管如此,实际的文件删除可能是最慢的部分。
for循环怎么样? – loyalpenguin 2012-03-05 17:32:01
@RowlandShaw我想OP希望删除目录中的所有* other *文件(但不是数组中的那些文件) – 2012-03-05 17:32:03
您的'convential比较和删除'有什么问题? – 2012-03-05 17:36:34