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 \这里有一个directoryinfo为什么没有方法获取该字符串“C:\ random \ spot \ here”似乎我只能得到父母“点”或姓名“这里”。也许我错过了什么。
谢谢,
答案 0 :(得分:6)
有一个名为path
的文件,但没有名为目录的路径。
var diPath = new DirectoryInfo(Path.GetDirectoryName(path));
可能就是你想要的。
答案 1 :(得分:1)
您在“路径”中包含文件名,因此路径将是叶节点(即文件)而不是目录(分支节点)。 Windows文件/路径处理是关于这些事情的文字。
如前所述,DirectoryInfo或Path.GetDirectoryName()可能是您在使用路径时要使用的内容。