获取文件夹相对路径的方法

时间:2012-02-01 07:40:25

标签: c#

我的项目中有一个名为“Images”的文件夹。我想获取Image文件夹的路径,以便我可以浏览并获取文件。

我正在使用下面的代码来满足我的上述要求并且工作正常。

string basePath = AppDomain.CurrentDomain.BaseDirectory;
basePath = basePath.Replace("bin", "#");
string[] str = basePath.Split('#');
basePath = str[0];
string path = string.Format(@"{0}{1}", basePath, "Images");
string[] fileEntries = Directory.GetFiles(path);
  foreach (string fileName in fileEntries)
         listBox.Items.Add(fileName);

只是想知道是否有任何优雅的方式这样做?获取文件夹路径的最佳方法是什么?

2 个答案:

答案 0 :(得分:4)

这是我通常使用的:

string appDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

请注意,这将返回包含当前正在执行的代码的程序集的目录(我假设这是您的主要可执行文件)。

要获取生成路径的父目录,您还可以使用

Path.GetDirectoryName(appDirectory);

我建议不要依赖代码中的Visual Studio项目结构。考虑将images文件夹作为内容添加到应用程序中,以便它驻留在与可执行文件相同的目录中的子目录中。

答案 1 :(得分:1)

如果您只是尝试引用与另一个目录具有固定关系的目录,那么您可以使用在命令行中使用的相同..语法吗?

您还应该使用Path类中的方法(例如Path.Combine)而不是所有字符串操作。