2

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

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" 似乎我只能得到 Parent "spot ”或名称“这里”。也许我错过了什么。

谢谢,

4

2 回答 2

6

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

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

可能是你想要的。

于 2010-03-11T00:49:54.503 回答
1

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

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

于 2010-03-11T01:00:02.907 回答