Directory.GetFiles 返回重复的文件名

Posted

技术标签:

【中文标题】Directory.GetFiles 返回重复的文件名【英文标题】:Directory.GetFiles Returning Duplicate File Names 【发布时间】:2012-10-05 21:10:47 【问题描述】:

我正在运行System.IO.Directory.GetFiles("my_directory_name_on_network"),它对于目录中的大多数11320 文件都很好,但其中一个文件存在两次。有没有人遇到过这个?知道这意味着什么吗?当我在 Windows 资源管理器中查看时,肯定似乎只有一个文件。

更新

最终我也能够在 Windows 资源管理器中看到该问题。相同的文件名在那里列出了两次。

【问题讨论】:

你确定扩展名也一样吗? 哦,是的。我什至做了检查,files[240] == files[241],所以字符串似乎是相等的。 您是否连接到 Windows 机器? 这是我的 NetOps 部门运行的某种文件服务器,我不知道它的详细信息。当我检查我可以看到的属性时,它显示类型:网络驱动器,文件系统:NTFS,仅此而已。这可能是相关的吗?我有可能找到这些信息。 可能区分大小写? 【参考方案1】:

我遇到了同样的问题。我正在遍历本地硬盘上的 Word 文档并执行一些自动化操作,而不是保存文件,只是读取它们。

我有一些文件是 *.doc 和一些是 *.docx。我用过

GetFiles("*.doc");

GetFiles("*.docx");

处理所有文件。然而,问题在于

GetFiles("*.doc");

还找到了\*.docxfiles,因此 .docx 文件被找到了两次。

使用这样的东西:

var strFileList = Directory.GetFiles(strDrvPth, strExtn).Where(s => s.EndsWith(strExtn.Substring(1)));

Substring(1) 从扩展规范中删除了“*”。

【讨论】:

以上是关于Directory.GetFiles 返回重复的文件名的主要内容,如果未能解决你的问题,请参考以下文章

Directory.GetFiles:如何只获取文件名,而不是完整路径? [复制]

Directory.GetFiles("path/to/dir", "*.*", SearchOption.AllDirectories) 但在 Python

Directory.EnumerateFiles 与 Directory.GetFiles 有啥区别?

Directory.GetFiles 有效,Directory.GetDirectories 不在同一目录中

您可以使用多个过滤器调用 Directory.GetFiles() 吗?

Directory.GetFiles()获取多个类型格式的文件