C#文件目录问题

时间:2015-02-12 19:39:35

标签: c# file-location

我为我的游戏创建了一个高分文件,我在阅读时遇到了问题。

当我更换计算机时,我的USB驱动器会将驱动器E中的字母.eg更改为驱动器G.

这导致读取文件时出现问题。 (因为我使用字符串路径= @“g:\ Scores.txt”;)

所以我的问题是......我可以设置程序位置的默认路径吗?

我目前的代码: -

string path = @"g:\Scores.txt";
            StringBuilder sb = new StringBuilder();
            using (StreamReader sr = new StreamReader(path))
            {
                while (sr.Peek() >= 0)
                {
                    sb.Append(sr.ReadLine());
                }
            }

感谢任何帮助。

3 个答案:

答案 0 :(得分:3)

你的USB驱动器上也有游戏吗?是否要将文件保存在与游戏相同的目录中,或者保存在其周围的某个目录中?做这样的事情:

using System;
using System.IO;
using System.Reflection;
...
string thisAsmFile = Assembly.GetExecutingAssembly().Location;
string thisAsmDir = Path.GetDirectoryName(thisAsmPath);
string highScoreFile = Path.Combine(thisAsmDir, "scores.txt");

答案 1 :(得分:0)

如果您的程序与文件位于同一文件夹中(例如G:\中),那么您只需使用其名称访问该文件:`path =“Scores.txt”。 在这种情况下,无需知道文件在哪里

答案 2 :(得分:0)

您应该使用应用程序路径,而不是绝对路径。 你可以这样做:

using System.IO;
using System.Windows.Forms;

string appPath = Path.GetDirectoryName(Application.ExecutablePath);