2010-03-11 14 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()可能是您想要使用的。