如何从具有相对路径“Directory.GetFiles(sPath)”的目录中获取文件

时间:2014-01-28 06:10:55

标签: c# visual-studio-2010

我有一个像“.. \ work \ FilesDirectory”这样的目录的相对路径。如何从此目录中获取所有文件。 我目前正在使用以下代码行,但它需要绝对路径。

string []AllFiles = Directory.GetFiles(sPath);

3 个答案:

答案 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.GetCurrentDirectoryDirectory.GetParent方法。

DirectoryInfo parentDirectoryInfo = System.IO.Directory.GetParent(System.IO.Directory.GetCurrentDirectory());
string []AllFiles = Directory.GetFiles(parentDirectoryInfo.FullName);

希望我帮忙!