【发布时间】:2014-07-03 10:05:21
【问题描述】:
在我的代码中,我使用GetFiles()-method 来计算给定文件夹中的文件数
让我们假设以下文件夹结构:
FolderA
File1
File2
File3
FolderB
File4
File5
FolderC
File9
File10
FolderD
File6
File7
FolderE
File8
要确定文件计数,我使用以下代码:
Dim filename as String = 'Path to my FolderA: C:/....../Desktop/FolderA
Dim myFileCount as Integer = 0
myFileCount = Directory.GetFiles(filename, "*.*", SearchOption.AllDirectories).Length
Result: MyfileCount is 3 instead of 10
执行此代码时,不包括FolderB & FolderC 的内容。在MSDN-Library - GetFiles() 和MSDN-Library - SearchOption 之后,这应该可以工作.....
我做错了什么?
【问题讨论】:
-
我在我的环境中尝试了你的代码..它对我有用
-
子文件夹中的文件是否可能没有扩展名?您的模式是
"*.*",因此只有名称中带有点的文件才会匹配。 -
这里相同;该代码对我来说很好。您是否有权访问 FolderB 和 FolderC?
-
所有文件的扩展名都是 .txt 或 .docx。权利不是问题(刚刚检查)。我拥有文件夹所需的所有权限。
-
@MicroVirus 你是对的!此代码是嵌入 Explorer.exe 的应用程序的一部分。显然,当我构建用户时,有时会从我的用户切换到“系统”用户(这大约每 10 个构建发生一次)。此用户(系统)对该文件夹没有权限。现在我只需要搜索用户切换背后的原因(这在它自己的术语中很奇怪)。感谢您的帮助!