我在一个目录中有很多文件,我的应用程序必须将一些文件移动到另一个目录。当我这样做,第一次工作正常,但在那之后,我有一个例外,如: System.IO.IOException:进程无法访问该文件,因为另一个进程正在使用该文件。
我关闭了Windows资源管理器或任何程序,避免使用该文件,但问题仍然存在。
我以这种方式移动文件:
private void ExtractosRemover()
{
string dirOrigen = '\\' + @"\" + servidor + @"\" + "EEQ_" + User.Identity.Name.ToString() + @"\";
string dirDestin = '\\' + @"\" + servidor + @"\" + "FacturasMatch_" + User.Identity.Name.ToString() + @"\";
try
{
foreach (GridViewRow grd_Row in this.gvwExtractosMatch.Rows)
{
File.Move(System.IO.Path.Combine(dirOrigen, clean(grd_Row.Cells[7].Text) + ".xml"), dirDestin);
}
}
catch (FileNotFoundException)
{
}
catch (IOException ioex)
{
lbl_UbiDevMensaje.Text = string.Empty;
lbl_UbiDevMensaje.Text = ioex.ToString();
}
}
对于文件的名称,我读了一个gridview,然后添加了扩展名。 我不知道发生了什么,
拜托,我希望有人可以帮助我。
提前致谢。
最好的问候
答案 0 :(得分:0)
解决, 使用服务器地图
private void ExtractosRemover()
{
string dirOrigen = "~/" + "EEQ_" + User.Identity.Name.ToString() + "/";
string dirDestin = "~/" + "FacturasMatch_" + User.Identity.Name.ToString() + "/";
foreach (GridViewRow grd_Row in this.gvwExtractosMatch.Rows)
{
try
{
File.Move( //Mover xml
Server.MapPath(dirOrigen + clean(grd_Row.Cells[7].Text) + ".xml"),
Server.MapPath(dirDestin + clean(grd_Row.Cells[7].Text) + ".xml")
);
File.Move( //Mover pdf
Server.MapPath(dirOrigen + "RIDE_" + clean(grd_Row.Cells[7].Text) + ".pdf"),
Server.MapPath(dirDestin + "RIDE_" + clean(grd_Row.Cells[7].Text) + ".pdf")
);
}
catch (FileNotFoundException)
{ }
}
}