我正在制作一个应用程序,它将在另一台计算机上打开,它依赖于在编译资源中读取。我能够这样做,以便它在计算机上给出路径时读取文件的内容,但我需要它在任何使用它的计算机上自动找到资源文件夹的路径。
代码是;
private void readFile()
{
string path = ;
string[] lines = System.IO.File.ReadAllLines(path);
for (int i = 0; i <= 10; i++)
{
if (i == 2)
{
media[0, 0] = lines[i];
System.Diagnostics.Debug.WriteLine(media[0, 0]);
}
if (i == 3)
{
media[0, 1] = lines[i];
System.Diagnostics.Debug.WriteLine(media[0, 1]);
}
if (i == 5)
{
media[1, 0] = lines[i];
System.Diagnostics.Debug.WriteLine(media[1, 0]);
}
if (i == 6)
{
media[1, 1] = lines[i];
System.Diagnostics.Debug.WriteLine(media[1, 1]);
}
if (i == 8)
{
media[2, 0] = lines[i];
System.Diagnostics.Debug.WriteLine(media[2, 0]);
}
if (i == 9)
{
media[2, 1] = lines[i];
System.Diagnostics.Debug.WriteLine(media[2, 1]);
}
if (i == 10)
{
media[2, 2] = lines[i];
System.Diagnostics.Debug.WriteLine(media[2, 2]);
}
}
}
除了“ReadAllLines”系列之外,其他所有工作都很好。我希望它指向资源文件夹,然后指向文本文件中的文件夹。
有人知道怎么做吗?任何帮助将不胜感激!
答案 0 :(得分:1)
在我看来,处理这个问题的正确方法就是达到这个目的;
string path = @".\myrelateive\path\toResources\myFile.txt";
FileInfo myFile = new FileInfo(path);
string[] lines = System.IO.File.ReadAllLines(myFile.FullName);
基本上,您应该只在源代码中使用相对路径。为了使其更强大,您可以使用DirectoryInfo
和FileInfo
等类来获取相对路径的完整路径。
除此之外,在解决方案资源管理器中,您需要确保将资源复制到构建时的输出目录中。这样做的方法是右键单击它们并选择视图属性,将有一个名为Copy To Output的设置。选择复制如果较新或始终复制。这将确保在构建解决方案时将资源文件与二进制文件捆绑在一起。从那里代码应该是可移植的(假设有关机器的所有其他内容类似于.NET版本等,这超出了本问题的范围。)