【发布时间】:2014-01-28 06:10:54
【问题描述】:
我有一个目录的相对路径,例如“..\work\FilesDirectory”。如何从此目录中获取所有文件。 我目前正在使用以下代码行,但它需要绝对路径。
string []AllFiles = Directory.GetFiles(sPath);
【问题讨论】:
标签: c# visual-studio-2010
我有一个目录的相对路径,例如“..\work\FilesDirectory”。如何从此目录中获取所有文件。 我目前正在使用以下代码行,但它需要绝对路径。
string []AllFiles = Directory.GetFiles(sPath);
【问题讨论】:
标签: c# visual-studio-2010
您应该Path.Combine 构造绝对路径,或者您可以更改Current Directory 使相对路径指向您需要的位置。
// Building c:\my\home\work\FilesDirectory
var absolutePath = Path.Combine(@"c:\my\home\toys\", @"..\work\FilesDirectory" );
注意:您需要知道路径相对于哪个位置。 IE。如果它相对于可执行文件使用Assembly.GetEntryAssembly().Location 作为基本路径。
【讨论】:
如果相对路径代表您的项目调试文件夹,那么您可以使用:
string relativePath = AppDomain.CurrentDomain.BaseDirectory & "work\FilesDirectory"
或者您也可以使用config 文件来保存路径并使用string.Join(),但最好使用Path.Combine。
【讨论】:
您始终可以使用Directory.GetCurrentDirectory 和Directory.GetParent 方法。
DirectoryInfo parentDirectoryInfo = System.IO.Directory.GetParent(System.IO.Directory.GetCurrentDirectory());
string []AllFiles = Directory.GetFiles(parentDirectoryInfo.FullName);
希望我能帮上忙!
【讨论】: