可能的重复:
获取相对于当前工作目录的路径? https://stackoverflow.com/questions/703281/getting-path-relative-to-the-current-working-directory
我的 C# 代码包含一些从绝对路径到相对路径的图像,因此无论应用程序折叠位于何处,都可以找到该图像。
例如,我的代码中的路径(以及我的笔记本电脑中的图像路径)是
C:/something/res/images/image1.jpeg
我希望我的代码中的路径是
..../images/image1.jpeg
因此它可以在文件夹所在的任何位置运行,无论文件夹的名称是什么C:
分区等
我希望代码中的路径独立于应用程序文件夹位置,或者是否位于另一个分区中,只要它与解决方案的其余部分位于同一文件夹中即可。
我有这个代码:
try
{
File.Delete("C:/JPD/SCRAT/Desktop/Project/Resources/images/image1.jpeg");
}
catch (Exception)
{
MessageBox.Show("File not found:C:/Users/JPD/Desktop/Project/images/image1.jpeg");
}
此代码仅在文件和文件夹位于该特定路径(这也是代码的位置)中时运行,我希望该路径是相对的,因此无论我将整个文件夹(代码、文件等)放在何处,程序仍然会运行只要代码(位于项目文件夹下)与文件夹图像位于同一位置即可工作...我应该做什么?
相对路径基于运行应用程序的二进制文件。默认情况下,您的二进制文件将输出在[directory of your .csproj]
/bin/调试。假设您想在与 .csproj 相同的级别创建图像文件夹。然后您可以使用相对路径“../../images/someImage.jpg”访问图像。
为了更好地感受这一点,请尝试以下测试:
1)创建一个新的视觉工作室示例项目,
2)创建与.csproj同级的images文件夹
3)将一些文件放入images文件夹中
4)将此示例代码放入您的主要方法中 -
static void Main(string[] args)
{
Console.WriteLine(Directory.GetCurrentDirectory());
foreach (string s in Directory.EnumerateFiles("../../images/"))
{
Console.WriteLine(s);
}
Console.ReadLine(); // Just to keep the console from disappearing.
}
您应该会看到在步骤 (3) 中放置的所有文件的相对路径。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)