我正在尝试使用StreamWriter保存LINQ XML文档。使用以下代码可以在文档较小(磁盘上大约6kb)时正常工作,但在文件较大时(磁盘上大约66kb)不起作用。如果我用绝对路径替换相对路径,它在两种情况下都能正常工作。是否有任何理由为什么相对路径会因较大的文件而失败?
注意:我没有得到任何异常,但是没有创建/写入文件,除非我使用绝对路径(使用较大的数据集 - 较小的数据集与相对路径一起正常工作)
XDocument xMap = new XDocument( ... );
// Works for small file but not large
using (StreamWriter writer = new StreamWriter("map.xml", false, new UTF8Encoding(false))) {
xMap.Save(writer);
}
// Works consistently
using (StreamWriter writer = new StreamWriter(@"c:\data\map.xml", false, new UTF8Encoding(false))) {
xMap.Save(writer);
}
答案 0 :(得分:3)
没有理由使用相对路径会使大文件失败。
您确定相对路径最终会出现在您认为的位置吗?如果相对路径在网络上,或者其驱动器已满,则可以解释它。
你有什么例外?
编辑:由于某种原因,当前目录可能已更改。检查Environment.CurrentDirectory
失败时的值,并确保它符合您的想法。