在构造函数中:
SaveLoadFiles.LoadFile(textBoxRadarPath, "radarpath.txt");
SaveLoadFiles.LoadFile(textBoxSatellitePath, "satellitepath.txt");
if (textBoxRadarPath.Text != "" || textBoxSatellitePath.Text != "")
{
if(!Directory.Exists(textBoxRadarPath.Text))
{
Directory.CreateDirectory(textBoxRadarPath.Text);
}
if (!Directory.Exists(textBoxSatellitePath.Text))
{
Directory.CreateDirectory(textBoxSatellitePath.Text);
}
btnStart.Enabled = true;
}
else
{
btnStart.Enabled = false;
}
保存加载文件类
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Weather
{
public class SaveLoadFiles
{
public static void SaveFile(string contentToSave, string fileName)
{
string applicationPath = Path.GetFullPath(System.AppDomain.CurrentDomain.BaseDirectory); // the directory that your program is installed in
string saveFilePath = Path.Combine(applicationPath, fileName);
File.WriteAllText(saveFilePath, contentToSave);
}
public static void LoadFile(TextBox loadTo, string fileName)
{
string applicationPath = Path.GetFullPath(System.AppDomain.CurrentDomain.BaseDirectory); // the directory that your program is installed in
string saveFilePath = Path.Combine(applicationPath, fileName); // add a file name to this path. This is your full file path.
if (File.Exists(saveFilePath))
{
loadTo.Text = File.ReadAllText(saveFilePath);
}
}
}
}
当我使用应用程序之前,并备份到我的usb闪存驱动器,第二个硬盘驱动器字母是D,我有两个硬盘:C和D,项目和文件夹在D盘上。
现在我备份了项目,包括保存的文件,但现在我的硬盘字母是C和E,没有D
但在构造函数中,当它阅读文本文件时,文本文件中的文件夹是D:....etc
但应该是E:
我正在检查该文件夹是否存在,然后如果不创建它,但它试图创建驱动器D和D上的文件夹不存在。
1条答案
按热度按时间eivgtgni1#
您正在阅读数据文件的内容,而该文件的文件路径已不存在。
解决方案是编辑这些数据文件:“radarpath.txt”和“satellitepath.txt”以获得正确的路径。
应用程序通常会提供一个UI来选择要使用的文件夹,而不是在数据文件中保存一个硬编码的路径。如果目录不存在,你可以使用FileDialog来提示用户要使用的目录。