我有一个物理目录结构:
根目录 (X) -> side root 中的许多子目录 (1,2,3,4..) -> 在每个子目录中存在许多文件。
Photos(Root)
----
123456789(Child One)
----
1234567891_w.jpg (Child two)
1234567891_w1.jpg(Child two)
1234567891_w2.jpg(Child two)
1234567892_w.jpg (Child two)
1234567892_w1.jpg(Child two)
1234567892_w2.jpg(Child two)
1234567893_w.jpg(Child two)
1234567893_w1.jpg(Child two)
1234567893_w2.jpg(Child two)
-----Cont
232344343(Child One)
323233434(Child One)
232323242(Child One)
232324242(Child One)
----Cont..
在数据库中,我有一个表,其中包含大量“1234567891_w.jpg”类型的名称。
注意:数据库中的数据数量和照片数量都是在lacs中。
我需要一种有效且快速的方法来检查从数据库表到物理目录结构的每个名称是否存在。
- 例如:名称为“1234567891_w.jpg”的文件是否存在于照片(根目录)内的物理文件夹中。*
如果我遗漏了此处要提供的任何信息,请告诉我。
更新:
我知道如何在目录中查找文件名。但我正在寻找一种有效的方法,因为检查超过 40 GB 数据中每个文件名(来自记录的 lacs)是否存在会消耗太多资源。
最佳答案
您可以尝试根据数据所在的目录对数据库中的数据进行分组。以某种方式对它们进行排序(例如,基于文件名),然后获取该目录中的文件数组
string[] filePaths = Directory.GetFiles(@"c:\MyDir\");
。现在您只需比较字符串。
关于c# - 使用文件名检查目录中文件是否存在的快速方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12929616/