【问题标题】:Access to the path is denied when save with filedialog使用 filedialog 保存时拒绝访问路径
【发布时间】:2013-03-12 06:59:40
【问题描述】:

我有两种保存到文件的形式:

一个。我将路径保留在代码中。

两个。我从用户那里得到了路径。

当我在代码中保存路径时,保存成功。今年秋天,当我从用户那里(我在代码中保留的相同路径)收到以下错误时:

Access to the path is denied

这里是我的保存功能(两种方式都是同一个功能):

public void SaveFile(string path)
{
    try
    {
        XmlSerializer serializer = new XmlSerializer(typeof(List<MyClass>));
        TextWriter textWriter = new StreamWriter(path);
        serializer.Serialize(textWriter, MyList);
        textWriter.Close();
    }
    catch (Exception e)
    {
    }
}

从我发送给这个函数的用户如下:

public void UserSave()
{
    //Open dialog in the path that i have in the code:
    fileDialog.InitialDirectory = MyPath;
    if (fileDialog.ShowDialog() == DialogResult.OK)
    {
        SaveFile(Path.GetDirectoryName(fileDialog.FileName));
    }
}

可能是什么问题?

【问题讨论】:

  • 要快速调试,您应该首先授予“everyone”权限到您尝试保存文件的目录。如果可行,您可以稍后设置所需的权限。
  • MyPath 是指文件夹还是文件?

标签: c# xml file-io io


【解决方案1】:

我在以下行中发现了错误:

SaveFile(Path.GetDirectoryName(fileDialog.FileName));

它基本上把它保存为一个文件夹而不是一个文件,所以它倒下了。

我改成这样了:

SaveFile(fileDialog.FileName);

【讨论】:

  • 谢谢,我遇到了同样的问题。我在做 Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) 并且需要在文件夹路径之后添加一个文件名。
猜你喜欢
  • 2020-07-26
  • 2014-12-31
  • 1970-01-01
  • 1970-01-01
  • 2011-01-11
  • 2016-11-11
  • 2011-03-29
相关资源
最近更新 更多