我只是用我自己的文件夹浏览器做一些试验。我注意到当我查看 Windows 7 中的 System32 文件夹时,我得到了一些奇怪的结果。这是代码:
DataTable dt=new DataTable();
string Folder="C:\\Windows\\System32";
DirectoryInfo DI = new DirectoryInfo(Folder);
foreach (FileInfo FI in DI.GetFiles())
{
DataRow Row = dt.NewRow();
if(FI.Name== "accelerometerdll.DLL")
{
}
Row["Name"] = FI.Name;
Row["Created"] = FI.CreationTime;
Row["Size"] = FI.Length;
dt.Rows.Add(Row);
}
dataGridView1.DataSource = dt;
运行时,文件列表不完整。文件总数比windows资源管理器少400多个。
可以对名为“accelerometerdll.dll”的文件进行简单检查以尝试解决此问题。该文件绝对位于 System32 文件夹中。我可以在资源管理器中看到它,当我执行 DIR 时,我可以在命令窗口中看到它。但它从未出现在我的数据表中。永远不会满足条件。它就像它根本看不见。我试过以管理员身份运行它,结果相同。
更令人不安的是它确实显示了一个名为“12520437.cpx”的文件,而我在资源管理器或命令窗口中都看不到它。它似乎在 SysWOW64 文件夹中而不是 System32 文件夹中???
我在这里的主要目标是显示与资源管理器在我打开任何文件夹时显示的文件完全相同的文件。
有什么想法吗?
最佳答案
关于c# - DirectoryInfo.GetFiles() 不返回所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44072374/