【发布时间】:2013-03-09 09:55:28
【问题描述】:
我正在使用 StreamWriter 写入文件。我正在使用“使用”,因此它应该自动关闭,但是当我尝试保存(写入文件)时,它给了我“无法访问文件,因为另一个进程正在使用它”错误。我似乎无法弄清楚它在哪里或为什么给我这个错误。这是我的代码
[WebMethod]
public static bool saveToCSV(string[] valueArray)
{
bool saveOK = false;
try
{
string filepath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
using (StreamWriter sw = new StreamWriter(filepath + "\\spreadsheet.csv", false))
{
foreach (var i in valueArray)
{
if (i.ToString() == "\n")
{
sw.Write(sw.NewLine);
}
else
{
{
if (i.ToString() == "")
{
sw.Write(" ");
sw.Write(",");
}
else
{
sw.Write(i.ToString());
sw.Write(",");
}
}
}
}
sw.Flush();
}//close using
saveOK = true;
}
catch (Exception ex)
{
saveOK = false;
}
return saveOK;
}
【问题讨论】:
-
尝试运行Handle.exe,看看哪个进程阻塞了资源。
-
代码看起来不错,除了你在这一行有一组额外的
{ },但不应该伤害代码..只需要快速查看一下..{ if (i.ToString() == "") { sw.Write(" "); sw.Write(","); } else { sw.Write(i.ToString()); sw.Write(","); } } -
查看所有代码,看看您是否正在为此创建另一个 StreamWriter 或 StreamReader 实例。
标签: c# asp.net visual-studio-2012