XmlTextWriter - 拒绝访问路径

时间:2014-02-20 16:32:02

标签: c# xml

这似乎很简单,但我似乎无法弄清楚问题

public static string destinationFile;

[STAThread]
private static void Main(string[] args)
{
    //doing something and then calling convert method
}

private static void convert(object source, FileSystemEventArgs f)
{
    if (check(FileName))
    {
        //doing something

        XmlTextWriter myWriter = new XmlTextWriter(destinationFile, null);

        //doing something
    }
}

private static bool check(string filename)
{
    //check the file and return a boolean result
    if (sometest)
    {
        destinationFile = @"d:/GS";
        return true;
    }

    return false;
}

当我跑步时,我得到:

The process failed:
System.UnauthorizedAccessException: Access to the path is denied

我可以知道我哪里出错了。

3 个答案:

答案 0 :(得分:2)

您正在尝试写入文件,该文件实际上已经是文件系统上的文件夹。

check方法中,您将destinationFile设置为“D:\ GS”,稍后您使用destinationFile作为XmlTextWriter的目标。

可能你想要的东西是:

  XmlTextWriter myWriter = new XmlTextWriter(Path.Combine(destinationFile, FileName), null);

答案 1 :(得分:0)

由于异常消息具有误导性,这可能表示该文件已被隐藏。

您可以通过右键单击Windows资源管理器=>进行检查。属性。是" Hidden" CheckBox已激活?如果是,请取消选中并重试。

您也可以在应用程序的代码中删除它(如果业务逻辑允许这样做)。您可以在此处找到示例代码:How do I write to a hidden file?

答案 2 :(得分:0)

要开始调试,我可能会把一些非常简单的xml放在同一个位置

var xml = "<?xml version=\"1.0\"?><hello><world>hello world</world></hello>";
 XDocument xdoc = XDocument.Parse(xml);
 xdoc.Save("d:\test.xml");

然后尝试阅读新路径 看看您的xml阅读器是否可以访问测试文件