遇到C#WPF文件保存异常

遇到C#WPF文件保存异常,c#,wpf,C#,Wpf,我的问题是,我一直看到一个重复出现的主题,试图让我的记事本克隆保存一个文件。每当我尝试保存文件时,无论硬盘上的位置如何,都会继续引发UnauthorizedAccess异常。下面是我所做工作的示例代码,从昨晚开始我一直在尝试研究,但都没有结果。任何帮助都将不胜感激 //located at base class level private const string fileFilter = "Text Files|*.txt|All Files|*.*"; private string cur

我的问题是,我一直看到一个重复出现的主题,试图让我的记事本克隆保存一个文件。每当我尝试保存文件时,无论硬盘上的位置如何,都会继续引发UnauthorizedAccess异常。下面是我所做工作的示例代码,从昨晚开始我一直在尝试研究,但都没有结果。任何帮助都将不胜感激

//located at base class level
private const string fileFilter = "Text Files|*.txt|All Files|*.*";

private string currentPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

private void MenuFileSaveAs_Click(object sender, RoutedEventArgs e)
{
    SaveFileDialog sfd = new SaveFileDialog();
    sfd.DefaultExt = "*.txt";
    sfd.Filter = fileFilter;
    sfd.AddExtension = true;
    sfd.InitialDirectory = currentPath;
    sfd.RestoreDirectory = true;
    sfd.OverwritePrompt = true;
    sfd.ShowDialog();

    try
    {
        System.IO.File.WriteAllText(currentPath,TxtBox.Text,Encoding.UTF8);     
    }

    catch (ArgumentException)
    {
        // Do nothing
    }    

    catch(UnauthorizedAccessException)
    {
        MessageBox.Show("Access Denied");
    }
}

用户点击“确定”后,需要从对话框中获取正确的路径上下文和文件对象。即验证用户是否实际点击了ok,然后使用OpenFile属性查看其文件选择:

if (sfd.ShowDialog.HasValue && sfd.ShowDialog)
{
    if (sfd.OpenFile() != null)
    {
        // convert your text to byte and .write()
        sfd.OpenFile.Close();
    }
}

更改以下行

...
    if (sfd.ShowDialog() != true)
        return;

    try
    {
        using (var stream = sfd.OpenFile())
        using (var writer = new StreamWriter(stream, Encoding.UTF8))
        {
            writer.Write(TxtBox.Text);
        }
    }
...

我希望它能帮助您。

未经授权的访问例外的完整消息是什么?请发布完整的异常消息。mscorlib.dll中发生类型为“System.UnauthorizedAccessException”的未经处理的异常。其他信息:对路径“C:\Users\Kohou\000\Documents”的访问被拒绝。MessageBox显示“拒绝访问”
Environment.GetFolderPath
返回文件夹的路径。
System.IO.File.WriteAllText
的第一个参数必须是文件的路径,而不是文件夹。嗯。。。我想我可能有一个想法与此相关。这实际上纠正了这个问题。非常感谢您的精彩回复!因此,从代码角度来看,您必须将文本框的输入转换为字节流,以便适当地保存。