我是一个老新手,所以如果我感到困惑,我很抱歉。
我正在 .NET Framework Winforms 中创建一个音乐播放器应用程序。
我一直在尝试做的就是创建一个方法,将文件夹路径字符串序列化到我们的音乐文件夹,反序列化文件夹路径,读取将显示在文本框中的反序列化文件夹路径。
JsonString jsonstring = new JsonString
{
defaultMediaLocation = @"C:Media\"
};
public string path = AppDomain.CurrentDomain.BaseDirectory + "MediaLocation.json";
public void SerializeJson(JsonString jsonstring, string path)
{
var serializer = new JsonSerializer();
using (var writer = new StreamWriter(path))
using (var jsonWriter = new JsonTextWriter(writer))
{
serializer.Serialize(jsonWriter, jsonstring.defaultMediaLocation);
jsonWriter.Flush();
writer.Close();
}
}
public string ReadJson()
{
char[] charsToTrim = { '"'};
var jsonread = File.ReadAllText(path).Trim(charsToTrim);
return jsonread;
}
所以最后,它正确地显示了上述文本框中显示的文件夹路径(C:Media),但每次我们尝试播放音乐时,我们都会收到一条消息: “在\Debug\Media\MediaLocation.json'中找不到路径'C:\Users\it\Source\Repos PGMusicPlayerWin2 PGMusicPlayerWin的一部分”
这很奇怪,因为它应该尝试直接从 C:\Media 播放音乐,这又正确地显示在文本框中,而不是来自调试路径。
请帮忙!
如果您使用AppDomain.CurrentDomain.BaseDirectory,您将获得正在执行的应用程序的启动目录,即调试目录