DirectoryInfo.GetFiles()不返回所有文件

时间:2017-05-19 14:16:31

标签: c# .net windows

我只是尝试使用自己的文件夹浏览器。我注意到当我查看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文件夹???

我的主要目标是显示浏览器在打开任何文件夹时显示的相同文件。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

必须根据知识渊博的响应关闭prefer 32位编译器指令。

此处提供更多信息:

File System Redirector