将 txt 文件保存到错误的位置

Saving txt file going to wrong location

我正在尝试将文本文件日志保存到我的 Windows Form 项目的特定位置。我将 InitialDirectory 设置为 Path.GetFullPath(filePath) 并传入 filePath ,它被设置为 "C:\MyWork\EventLogs\"

的简单路径

日志在程序退出时保存(当用户关闭或点击退出按钮时),但它仍然保存在我项目的 Project\bin\Debug 文件夹中。

任何想法都会很棒。谢谢!

try
{
    DateTime today = DateTime.Now;
    string todayDate = today.ToString("yyyy-MM-dd_HHmm");
    string fileName = (todayDate + "_EventLog" + ".txt").Trim();
    string filePath = @"C:\MyWork\EventLogs\";
    DirectoryInfo di = Directory.CreateDirectory(filePath);
    SaveFileDialog sn = new SaveFileDialog
    {
        FileName = fileName,
        AddExtension = true,
        CheckPathExists = true,
        Filter = "Text (*.txt)|*.txt",
        OverwritePrompt = true,
        InitialDirectory = Path.GetFullPath(filePath)
    };

    sn.RestoreDirectory = true;
    StreamWriter SaveFile = new StreamWriter(fileName);
    foreach (var item in EventLog)
    {
        SaveFile.WriteLine(item);
    }
    SaveFile.Close();
}
catch (Exception x)
{
    MessageBox.Show(x.ToString());
}

您在当前代码中没有显示保存对话框或使用它的 FileName 属性,而是在保存时引用初始 fileName

所以你需要做的是这样的:

if (sn.ShowDialog() == DialogResult.OK)
{
    using (StreamWriter SaveFile = new StreamWriter(sn.FileName))
    {
        foreach (var item in EventLog)
        {
            SaveFile.WriteLine(item);
        }
    }
}

这将显示保存对话框,假设用户单击“确定”,保存对话框的 FileName 应该 是用户想要保存的完整路径保存到。

您必须将保存对话框显示为 return 您期望的值。