【问题标题】:Understanding a boolean on DirectoryInfo.Exists了解 DirectoryInfo.Exists 上的布尔值
【发布时间】:2010-03-11 00:47:44
【问题描述】:

var fileOpen = new OpenFileDialog(); var clickedOk = fileOpen.ShowDialog(); if (!((bool) clickedOk)) return;

var path = fileOpen.FileName;
var diPath = new DirectoryInfo(path);
var fiPath = new FileInfo(path);

Debug.WriteLine(diPath.Exists);

我只是想知道为什么 diPath.Exists 在这种情况下是错误的?既然用户选择了一个文件,那么该目录一定存在!?它确实......

我已经使用Directory.Exists(fiPath.DirectoryName) 解决了这个问题,但上面的方法不起作用似乎很奇怪,并且需要其他 var 来检查我知道是否存在并且应该能够使用 diPath。这是怎么回事?

还有一个相关的问题,假设我有一个目录 C:\random\spot\here 的目录信息,为什么没有办法获取字符串 "C:\random\spot\here" 似乎我只能得到父母“现场”或名称“这里”。也许我错过了什么。

谢谢,

【问题讨论】:

    标签: c# boolean fileinfo directoryinfo


    【解决方案1】:

    有一个名为path文件,但没有名为路径的目录

    var diPath = new DirectoryInfo(Path.GetDirectoryName(path));
    

    可能是你想要的。

    【讨论】:

      【解决方案2】:

      您在“路径”中包含文件名,因此路径将是叶节点(即文件)而不是目录(分支节点)。对于这类事情,Windows 文件/路径处理是相当直接的。

      如前所述,DirectoryInfo 或 Path.GetDirectoryName() 可能是您在使用路径时想要使用的。

      【讨论】:

        猜你喜欢
        • 2012-07-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-30
        • 1970-01-01
        • 1970-01-01
        • 2011-04-13
        • 2017-04-08
        相关资源
        最近更新 更多