2010-11-25 11 views
1

Ich bekomme Zugang verweigert, immer wenn ich versuche, eine Datei zu löschen, nachdem Sie es bei C:\inetpub\wwwroot\Project\temp\ lesen. I Close() und Dispose() den StreamReader schon richtig? Ich habe auch die volle Erlaubnis für den NETWORK SERVICE-Account erteilt? Kann mir jemand helfen?Zugriff verweigert, wenn versuchen, Datei zu löschen

reader = new StreamReader(path + fileName); 
DataTable dt = new DataTable(); 
      String line = null; 
      int i = 0; 

      while ((line = reader.ReadLine()) != null) 
      { 
       String[] data = line.Split(','); 
       if (data.Length > 0) 
       { 
        if (i == 0) 
        { 
         dt.Columns.Add(new DataColumn()); 
         foreach (object item in data) 
         { 
          DataColumn c = new DataColumn(Convert.ToString(item)); 
          if (Convert.ToString(item).Contains("DATE")) 
          { 
           c.DataType = typeof(DateTime); 
          } 
          else { c.DataType = typeof(String); } 
          dt.Columns.Add(c); 
         } 
         dt.Columns.Add(new DataColumn("CreatedDate", typeof(DateTime))); 
         i++; 
        } 
        else 
        { 
         DataRow row = dt.NewRow(); 
         row[0] = ""; 
         for (int j = 0; j < data.Length; j++) 
         { 
          if (dt.Columns[j + 1].DataType == typeof(DateTime)) 
          { 
           row[j + 1] = Convert.ToDateTime(data[j]); 
          } 
          else 
          { 
           row[j + 1] = data[j]; 
          } 
         } 
         row[data.Length + 1] = DateTime.Now.ToString(); 
         dt.Rows.Add(row); 
        } 
       } 
      } 
      DataAccess dataAccess = new DataAccess(Constant.CONNECTION_STRING_NAME); 
      dataAccess.WriteBulkData(dt, Constant.TABLE); 
      reader.Close(); 
      reader.Dispose(); 
      File.Delete(path); 
+1

seine wahrscheinlich noch in Gebrauch –

+1

Wie Microgen gesagt hat, ist es wahrscheinlich immer noch in Gebrauch ist. In der Vergangenheit hatte ich Probleme, wo es ein wenig Zeit braucht, um die Datei korrekt zu veröffentlichen, versuchen Sie eine Verzögerung, bevor Sie versuchen, es zu löschen, um zu sehen, ob es das ist – w69rdy

Antwort

4

Ihr File.Delete-Methodenaufruf sollte Pfad + Dateiname als Parameter verwenden. Dies ist, weil gemäß diesem Link http://msdn.microsoft.com/en-us/library/system.io.file.delete.aspx Pfad der vollständige Pfad einschließlich des Dateinamens ist und Ihre Pfadvariable nur den Ordnernamen enthält.

+0

Verdammt, ich war so dumm, vielen Dank ! – Leo

2

Sie löschen File.Delete(path); nicht File.Delete(path + filename);

1

Du

reader = new StreamReader(path + fileName); 

Öffnen Aber Sie schließen

File.Delete(path); 
0

Ich hatte auch das Problem, damit ich auf diesen Beitrag zu Server Stolper . Ich habe die folgende Codezeile vor und nach einem Kopieren/Löschen hinzugefügt.

löschen

File.SetAttributes(file, FileAttributes.Normal); 
File.Delete(file); 

Copy

File.Copy(file, dest, true); 
File.SetAttributes(dest, FileAttributes.Normal); 

-Link: Why is access to the path denied?

+0

Danke, seine Arbeit für mich ... –

+0

Willkommen Meda ... –

Verwandte Themen