目录长度不起作用

时间:2015-08-20 14:41:07

标签: c# file directory

这可能是一个愚蠢的问题,但我试图找出文件夹中有多少文件,一个minuite告诉我0,下一次它告诉我1那时根本就没有文件。

我甚至在我的文档中创建了一个名为H的新文件夹,其中根本没有任何内容,它仍然会返回1项。有人请解释这个,甚至自己尝试,它会伤到我的脑袋

int i = Directory.GetFiles(@"C:\Users\William\Documents\H\").Length;
        MessageBox.Show(Convert.ToString(i));

3 个答案:

答案 0 :(得分:5)

实际上,您会收到不需要的系统文件,例如thumbs.db。您可以这样排除它们:

string[] files = new DirectoryInfo(@"C:\Users\William\Documents\H\").GetFiles()
            .Where(f => !f.Attributes.HasFlag(FileAttributes.System | FileAttributes.Hidden))
            .Select(f => f.FullName)
            .ToArray();

答案 1 :(得分:0)

很可能你有一个被计算的隐藏文件。检查隐藏文件,如thumbs.db或其他可能存在的系统文件。

答案 2 :(得分:-2)

你试过这个吗:

System.IO.Directory myDir = GetMyDirectoryForTheExample();
int count = myDir.GetFiles().Length;