我为我的游戏创建了一个高分文件,我在阅读时遇到了问题。
当我更换计算机时,我的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());
}
}
感谢任何帮助。
答案 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);