StreamWriter与相对路径的工作方式不一致吗?

时间:2009-10-21 01:39:36

标签: c# xml linq file-io linq-to-xml

我正在尝试使用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);
}

1 个答案:

答案 0 :(得分:3)

没有理由使用相对路径会使大文件失败。

您确定相对路径最终会出现在您认为的位置吗?如果相对路径在网络上,或者其驱动器已满,则可以解释它。

你有什么例外?


编辑:由于某种原因,当前目录可能已更改。检查Environment.CurrentDirectory失败时的值,并确保它符合您的想法。