2010-03-11 47 views
2

var fileOpen = new OpenFileDialog(); var clickedOk = fileOpen.ShowDialog(); (!((bool)clickedOk))return;了解DirectoryInfo.Exists上的布尔值

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:\随机\斑\目录信息为什么没有方法来获得该字符串“C:\随机\斑\这里”似乎我只能得到家长“点”或名字“在这里”。也许我错过了什么。

感谢,

回答

6

有一个文件称为path但没有目录叫做路径。

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

可能是你想要的。

1

您将文件名包含在“路径”中,因此路径将是叶节点(即文件)而不是目录(分支节点)。 Windows文件/路径处理对于那些事情是完全字面的。

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