c# - 使用文件名检查目录中文件是否存在的快速方法

标签 c# .net search directory directorysearcher

我有一个物理目录结构:

根目录 (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/

相关文章:

c# - 在 Application_AquireRequestState 事件中用 POST 数据重写 Url

c# - 将类成员的范围限制在私有(private)之外

c# - LINQ OrderBy 有一个异常(exception)

c# - 为什么要在空 try block 中使用 try {} finally {}?

javascript - 如何使用 C# 和 Angular js 在 View 上显示数据

c# - Entity Framework 4,插入外键值而不是 ID

c# - 区分忽略空格、变音符号和大小写的字符串列表

c# - 仅根据在 lucene 中术语出现次数较多的文档计算分数

python - fnmatch 你究竟是如何实现匹配seq模式中的任何字符的

mysql搜索和索引性能