无法移动文件,因为另一个进程使用该文件

时间:2016-05-04 18:42:05

标签: asp.net

我在一个目录中有很多文件,我的应用程序必须将一些文件移动到另一个目录。当我这样做,第一次工作正常,但在那之后,我有一个例外,如: 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,然后添加了扩展名。 我不知道发生了什么,

拜托,我希望有人可以帮助我。

提前致谢。

最好的问候

1 个答案:

答案 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)
        {  }


    }


}