这似乎很简单,但我似乎无法弄清楚问题
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
我可以知道我哪里出错了。
答案 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阅读器是否可以访问测试文件