2

有谁知道“等”在目录枚举方面有什么特别之处,还有其他人喜欢它吗?如何绕过它不可见?

public class Foo
{
    [Test]
    public void Etc()
    {
        var etc = new DirectoryInfo(@"C:\Windows\System32\drivers\etc");
        Assert.True(etc.Exists);

        /* Expected: not <empty> But was:  <empty> */
        Assert.IsNotEmpty(etc.Parent.GetDirectories(etc.Name));
    }
}
4

2 回答 2

3

您在 64 位机器上将代码作为 32 位进程运行。你会看到文件系统重定向器的效果

C:\Windows\system32\drivers\etc不被重定向(它被记录为免于重定向),C:\windows\system32\drivers\etc对于 32 位或 64 位进程也是如此。

但是当您升级到 时,如果您在 32 位进程中运行C:\windows\system32\drivers,您将被重定向到。C:\Windows\SysWow64\drivers并且该目录下没有etc目录。

于 2013-03-08T13:50:00.443 回答
0

嗯...这可能是权限问题(可能是读取权限),但如果是这种情况,您可能会收到错误消息。

看看它是否显示使用Directory.GetDirectories(@"C:\Windows\System32\drivers")方法 on 。

这是文档

于 2013-03-08T13:48:13.560 回答