我有一个像“.. \ work \ FilesDirectory”这样的目录的相对路径。如何从此目录中获取所有文件。 我目前正在使用以下代码行,但它需要绝对路径。
string []AllFiles = Directory.GetFiles(sPath);
答案 0 :(得分:2)
您应该Path.Combine构建绝对路径,或者可以更改Current Directory,以便相对路径指向您需要的位置。
// Building c:\my\home\work\FilesDirectory
var absolutePath = Path.Combine(@"c:\my\home\toys\", @"..\work\FilesDirectory" );
注意:您需要知道路径相对于哪个位置。即如果它相对于可执行文件使用Assembly.GetEntryAssembly().Location
作为基本路径。
答案 1 :(得分:2)
如果relative path表示Project Debug文件夹,则可以使用:
string relativePath = AppDomain.CurrentDomain.BaseDirectory & "work\FilesDirectory"
或者您也可以使用config
文件保存路径并使用string.Join()
,但最好使用Path.Combine
。
答案 2 :(得分:1)
您始终可以使用Directory.GetCurrentDirectory和Directory.GetParent方法。
DirectoryInfo parentDirectoryInfo = System.IO.Directory.GetParent(System.IO.Directory.GetCurrentDirectory());
string []AllFiles = Directory.GetFiles(parentDirectoryInfo.FullName);
希望我帮忙!