winforms 如何处理硬盘驱动器号与保存到文本文件时不相同的情况?

qacovj5a  于 2023-02-09  发布在  其他
关注(0)|答案(1)|浏览(130)

在构造函数中:

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上的文件夹不存在。

eivgtgni

eivgtgni1#

您正在阅读数据文件的内容,而该文件的文件路径已不存在。
解决方案是编辑这些数据文件:“radarpath.txt”和“satellitepath.txt”以获得正确的路径。
应用程序通常会提供一个UI来选择要使用的文件夹,而不是在数据文件中保存一个硬编码的路径。如果目录不存在,你可以使用FileDialog来提示用户要使用的目录。

相关问题