2010-11-25 50 views
1

Je reçois un accès refusé chaque fois que j'essaie de supprimer un fichier après l'avoir lu au C:\inetpub\wwwroot\Project\temp\. I Fermer() et Dispose() le StreamReader correctement déjà? J'ai également donné l'autorisation complète pour le compte NETWORK SERVICE? Quelqu'un peut-il m'aider?Obtention d'accès refusée lors de la tentative de suppression du fichier

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

est probablement encore en usage –

+1

Comme Microgen a dit, son utilisation dans probablement encore. Dans le passé j'ai eu des problèmes où il faut un peu de temps pour libérer correctement le fichier, essayez de mettre un délai avant d'essayer et de le supprimer pour voir si c'est ça – w69rdy

Répondre

4

Votre appel de méthode File.Delete doit prendre le chemin + nomFichier en tant que paramètre. En effet, d'après ce lien, http://msdn.microsoft.com/en-us/library/system.io.file.delete.aspx path est le chemin d'accès complet, y compris le nom du fichier, et votre variable path inclut uniquement le nom du dossier.

+0

Merde, j'étais si stupide, merci beaucoup ! – Leo

2

Vous supprimons File.Delete(path); pas File.Delete(path + filename);

1

Vous ouvrez

reader = new StreamReader(path + fileName); 

Mais vous fermez

File.Delete(path); 
0

J'ai aussi eu le problème, me donc trébucher sur ce poste au serveur . J'ai ajouté la ligne de code suivante avant et après une copie/suppression.

Supprimer

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

Copie

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

Lien: Why is access to the path denied?

+0

Merci, Son travail pour moi ... –

+0

Bienvenue Medam ... –