c# searchpattern 如何從文件的完整路徑獲取目錄?




vb net list all files and folders in directory (9)

如果你肯定有絕對路徑,使用Path.GetDirectoryName(path)

如果您只能獲取相對名稱,請使用new FileInfo(path).Directory.FullName

請注意PathFileInfo都位於命名空間System.IO

獲取文件所在目錄的最簡單方法是什麼? 我正在使用它來設置一個工作目錄。

string filename = @"C:\MyDirectory\MyFile.bat";

在這個例子中,我應該得到“C:\ MyDirectory”。


您可以使用System.IO.Path.GetDirectory(filename) ,或將路徑轉換為FileInfo ,然後使用FileInfo.Directory

如果你正在用路徑做其他事情, FileInfo可能會有優勢。


System.IO.Path.GetDirectoryName(filename)

只要告訴別人需要它,我用我的相對路徑是:

string rootPath = "MyRootDir/MyFolder1/MyFolder2/myFile.pdf";
while (!string.IsNullOrWhiteSpace(Path.GetDirectoryName(rootPath))) 
{
    rootPath = Path.GetDirectoryName(rootPath);
} 
Console.WriteLine(rootPath); //Will print: "MyRootDir"

使用下面提到的代碼來獲取文件夾路徑

Path.GetDirectoryName(filename);

這將返回“C:\ MyDirectory”在你的情況


如果您正在使用FileInfo對象,則可以通過DirectoryName屬性提取目錄完整路徑的string表示形式。

通過MSDN獲取FileInfo.DirectoryName屬性的說明:

獲取表示目錄完整路徑的字符串。

示例用法:

string filename = @"C:\MyDirectory\MyFile.bat";
FileInfo fileInfo = new FileInfo(filename);
string directoryFullPath = fileInfo.DirectoryName; // contains "C:\MyDirectory"

鏈接到MSDN文檔



您可以使用以下命令獲取當前的應用程序路徑

string AssemblyPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location).ToString();

祝你好運!


Path.GetDirectoryName(filename);




directory