C#获取资源文件夹的相对路径

时间:2020-07-10 20:14:59

标签: c# directory path resources

我要访问一个.txt文件,该文件存储在项目的资源文件夹中,所有导入的图片也存储在该文件中。 我想使用类似的相对路径,因为每个用户都会在自己的PC上的其他位置保护自己的程序,但是与programm文件夹相比,总有资源文件夹在同一位置。

我尝试使用过此命令:age 0 1 2 3 4 5 6 7 8 ... 62 63 64 65 66 67 68 69 70 year ... 1800 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 1801 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 1802 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 1803 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 1804 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 .. .. .. .. .. .. .. .. .. ... .. .. .. .. .. .. .. .. .. 1876 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 1877 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 1878 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 1879 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 1880 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 1 [81 rows x 71 columns] ,但这不起作用。 我收到以下错误消息: System.IO.DirectoryNotFoundException:,它也在那里列出了.txt的相对路径,所以我不明白,为什么它无法读取它。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

@ChetanRanpariya试图告诉您的是,您的程序是构建的,而不是文件夹Resources所在的文件夹。因此,您已明确告诉文件Resources\startmessages.txt在构建过程中进行自我复制,因此将其复制到另一个文件夹中。假设您使用的是Visual Studio,则必须右键单击文件并将Copy To Output Directory设置为true。它的相对文件夹路径(Resources\)将被接管。您可以在bin文件夹中的某个位置找到构建文件夹,具体取决于配置和框架。 :)

答案 1 :(得分:0)

可执行文件所在的当前路径

Directory.GetParent(System.IO.Directory.GetCurrentDirectory()).FullName

解决方案路径

如果您使用的是Visual Studio,并且需要访问解决方案目录中的文件夹,则可以使用.Parent方法,

Directory.GetParent(System.IO.Directory.GetCurrentDirectory()).Parent.Parent.FullName

使用Path.Combine

找到资源文件夹的位置后,使用Path.Combine获取读取文件/内容等的位置

Path.Combine(Directory.GetParent(System.IO.Directory.GetCurrentDirectory()).Parent.Parent.FullName, "Resources\\startMessages.txt")