将程序指向资源文件夹

时间:2014-04-14 20:58:29

标签: c# path resources filepath readfile

我正在制作一个应用程序,它将在另一台计算机上打开,它依赖于在编译资源中读取。我能够这样做,以便它在计算机上给出路径时读取文件的内容,但我需要它在任何使用它的计算机上自动找到资源文件夹的路径。

代码是;

    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”系列之外,其他所有工作都很好。我希望它指向资源文件夹,然后指向文本文件中的文件夹。

有人知道怎么做吗?任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

在我看来,处理这个问题的正确方法就是达到这个目的;

    string path = @".\myrelateive\path\toResources\myFile.txt";
    FileInfo myFile = new FileInfo(path);
    string[] lines = System.IO.File.ReadAllLines(myFile.FullName);

基本上,您应该只在源代码中使用相对路径。为了使其更强大,您可以使用DirectoryInfoFileInfo等类来获取相对路径的完整路径。

除此之外,在解决方案资源管理器中,您需要确保将资源复制到构建时的输出目录中。这样做的方法是右键单击它们并选择视图属性,将有一个名为Copy To Output的设置。选择复制如果较新或始终复制。这将确保在构建解决方案时将资源文件与二进制文件捆绑在一起。从那里代码应该是可移植的(假设有关机器的所有其他内容类似于.NET版本等,这超出了本问题的范围。)