我的项目中有一个名为“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);
只是想知道是否有任何优雅的方式这样做?获取文件夹路径的最佳方法是什么?
答案 0 :(得分:4)
这是我通常使用的:
string appDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
请注意,这将返回包含当前正在执行的代码的程序集的目录(我假设这是您的主要可执行文件)。
要获取生成路径的父目录,您还可以使用
Path.GetDirectoryName(appDirectory);
我建议不要依赖代码中的Visual Studio项目结构。考虑将images文件夹作为内容添加到应用程序中,以便它驻留在与可执行文件相同的目录中的子目录中。
答案 1 :(得分:1)
如果您只是尝试引用与另一个目录具有固定关系的目录,那么您可以使用在命令行中使用的相同..语法吗?
您还应该使用Path类中的方法(例如Path.Combine)而不是所有字符串操作。