2016-05-04 12 views
0

Ich habe viele Dateien in einem Verzeichnis, Meine App, muss einige Dateien in ein anderes Verzeichnis verschieben. Wenn ich das tat, funktioniert das erste Mal gut, aber danach habe ich eine Ausnahme wie: System.IO.IOException: Prozess kann nicht auf die Datei zugreifen, weil ein anderer Prozess die Datei verwendet.Datei kann nicht verschoben werden, da sie von einem anderen Prozess verwendet wird

Ich schließe Windows Explorer oder ein Programm, die Verwendung der Datei zu vermeiden, aber das Problem besteht weiterhin.

ich Verschieben von Dateien auf diese Weise:

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(); 
    } 


} 

Für die Namen der Dateien, habe ich eine Gridview gelesen, und ich fügen Sie die Erweiterungen. Ich weiß nicht, was passiert,

Bitte, ich hoffe, jemand kann mir helfen.

Vielen Dank im Voraus.

freundlichen Grüßen

+0

Was sonst sind Sie mit der Datei zu tun, nachdem Sie es zu bewegen? Außerdem können Sie herausfinden, was es mit ProcessExplorer abschließt. – muratgu

+0

Hallo, danke für Ihren Kommentar, Process Explorer oder Tasklist enthüllt nichts, Es gibt mehrere Dateien im Verzeichnis, mein Job ist sie in ein anderes Verzeichnis verschieben (um zu wissen, welche Dateien muss ich verschieben, verwende ich Gridview Werte). Die Dateien werden zuvor von den Benutzern auf den Server hochgeladen. –

Antwort

0

gelöst, Server Karte verwenden

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


    } 


} 
Verwandte Themen