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

标签 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 文件夹中???

我在这里的主要目标是显示与资源管理器在我打开任何文件夹时显示的文件完全相同的文件。

有什么想法吗?

最佳答案

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

此处提供更多信息:

File System Redirector

关于c# - DirectoryInfo.GetFiles() 不返回所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44072374/

相关文章:

windows - 为什么 Bison 在 Windows 中不能正常工作(不生成输出文件)?

c# - 如何对依赖于控制台的 switch 语句进行单元测试

c# - 我的线程代码的执行时间没有受益于具有 Join 的线程

c# - 为什么 C# 的 LastIndexOf 会这样?

c# - DropDownList 不接受我尝试分配的 SelectedIndex

c# - 使用包装器类模拟 .NET 类

c - 从c中的其他文件打开文件路径

windows - 注册表项和值名称的有效字符是什么?

c# - 无法使用 asp.net web 应用程序将数据插入 SQL Server 数据库

C# Process.Start 路径