我的 wpf 应用程序可以将记事本文件保存在我在 app.config 中提供的固定路径上作为密钥,但我希望它保存在用户


private void WriteToFile(TextRange textRange)
    {
                  using (StreamWriter oWriter = new StreamWriter(ConfigurationManager.AppSettings["folderpath"], true))
        {
            oWriter.WriteLine(DateTime.Now.ToString());
            oWriter.WriteLine("*****************************************************************************");
            oWriter.WriteLine(textRange.Text);
            oWriter.WriteLine("*****************************************************************************");
            oWriter.WriteLine("*****************************************************************************");
            oWriter.Write("$");
        }
        MessageBox.Show(folderpath);
    }

代码中的文件夹路径是 app.config 中的一个键,值="C:\Users\MyPC\Desktop\textfile.txt"

如果我删除密钥并在代码中初始化字符串,它会显示错误 值不能为空.请帮忙!

Environment.GetFolderPath 返回的目录字符串不包含尾随/因此生成的字符串最终为:C:UsersUserDesktoptextfile.txt

我强烈建议使用 Path.Combine() 将文件名附加到路径中,以防止这种情况发生。

前任:

Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "textfile.txt")

代码的完整示例:

private void WriteToFile(TextRange textRange)
{
    string folderpath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "textfile.txt");
    using (StreamWriter oWriter = new StreamWriter(folderpath, true))
    {
        oWriter.WriteLine(DateTime.Now.ToString());
        oWriter.WriteLine("*****************************************************************************");
        oWriter.WriteLine(textRange.Text);
        oWriter.WriteLine("*****************************************************************************");
        oWriter.WriteLine("*****************************************************************************");
        oWriter.Write("$");
    }
    MessageBox.Show(folderpath);
}

最新更新