Supprimer le répertoire (. NET)

  • TheArchitect
  • Professor
  • Professor
  • No Avatar
  • Inscription: Oct 03, 2004
  • Messages: 764
  • Loc: Australia
  • Status: Offline

Message Janvier 5th, 2006, 8:02 pm

Salut,

Je sais il est possible de supprimer des fichiers en utilisant IO.File.Delete () en. NET, mais comment peut-on supprimer un dossier et tout son contenu?
  • Anonymous
  • Bot
  • No Avatar
  • Inscription: 25 Feb 2008
  • Messages: ?
  • Loc: Ozzuland
  • Status: Online

Message Janvier 5th, 2006, 8:02 pm

  • TheArchitect
  • Professor
  • Professor
  • No Avatar
  • Inscription: Oct 03, 2004
  • Messages: 764
  • Loc: Australia
  • Status: Offline

Message Janvier 5th, 2006, 8:09 pm

Je suppose que vous pouvez utiliser IO.Directory.Delete (), mais que faites-vous si le répertoire n'est pas vide?
  • Truce
  • Guru
  • Guru
  • No Avatar
  • Inscription: Avr 25, 2004
  • Messages: 1477
  • Loc: Washington DC
  • Status: Offline

Message Janvier 5th, 2006, 9:59 pm

Recursion.

Code: [ Select ]
    Dim path As String, i As Integer, files() As String

    path = "c:\path\to\directory\"

    files = System.IO.Directory.GetFiles(path)
    For i = 0 To files.Length
      Try
        System.IO.File.Delete(path & files(i))
      Catch ex As Exception
        MsgBox(ex.Message, MsgBoxStyle.Critical, "Error occurred while deleting files!")
      End Try
    Next
    System.IO.Directory.Delete(path)
  1.     Dim path As String, i As Integer, files() As String
  2.     path = "c:\path\to\directory\"
  3.     files = System.IO.Directory.GetFiles(path)
  4.     For i = 0 To files.Length
  5.       Try
  6.         System.IO.File.Delete(path & files(i))
  7.       Catch ex As Exception
  8.         MsgBox(ex.Message, MsgBoxStyle.Critical, "Error occurred while deleting files!")
  9.       End Try
  10.     Next
  11.     System.IO.Directory.Delete(path)
  • TheArchitect
  • Professor
  • Professor
  • No Avatar
  • Inscription: Oct 03, 2004
  • Messages: 764
  • Loc: Australia
  • Status: Offline

Message Janvier 6th, 2006, 1:39 am

Malheureusement, le code ne semble pas fonctionner pour moi. Il a encore un problème avec la suppression de l'annuaire, étant donné qu'elle n'est pas vide. Ive got a seulement quelques fichiers à supprimer et Im travailler avec une solution différente; de supprimer les fichiers individuellement, puis de supprimer le répertoire. Im toujours ouvert aux suggestions si! Merci. :wink:
  • mrmagu
  • Student
  • Student
  • No Avatar
  • Inscription: Déc 14, 2004
  • Messages: 86
  • Loc: Great White North
  • Status: Offline

Message Janvier 6th, 2006, 3:10 am

TheArchitect a écrit:
Ive got a seulement quelques fichiers à supprimer et Im travailler avec une solution différente; de supprimer les fichiers individuellement, puis de supprimer le répertoire.


uhh, thats ce que les trêves code...seul son ne prend pas en compte les répertoires dans le répertoire principal .. pour lutter contre ce, enroulez-le code dans une fonction et d'appeler lui-même lorsque le fichier est un répertoire.
  • katana
  • Mastermind
  • Mastermind
  • Avatar de l’utilisateur
  • Inscription: Sep 07, 2004
  • Messages: 2390
  • Loc: Edinburgh, Scotland
  • Status: Offline

Message Janvier 6th, 2006, 7:44 am

Utilisez Directory.Delete, non File.Delete.

IE (en C #):

Code: [ Select ]
string path = @"C:\my_folder_to_delete";
System.IO.Directory.Delete(path, true);
  1. string path = @"C:\my_folder_to_delete";
  2. System.IO.Directory.Delete(path, true);


Passing "true" comme second paramètre indique la méthode pour supprimer des fichiers et dossiers récursivement. D'où ce va supprimer tous les fichiers et les sous-dossiers de la "my_folder_to_delete répertoire", puis supprimer le répertoire lui-même.
Why do geeks get Halloween and Christmas confused?
Because 31 Oct == 25 Dec
www.darren-king.co.uk
  • TheArchitect
  • Professor
  • Professor
  • No Avatar
  • Inscription: Oct 03, 2004
  • Messages: 764
  • Loc: Australia
  • Status: Offline

Message Janvier 6th, 2006, 8:22 pm

Awesome katana. J'ai appris quelque chose de nouveau tous les jours. :D
  • Jortx
  • Born
  • Born
  • No Avatar
  • Inscription: Mai 27, 2009
  • Messages: 1
  • Status: Offline

Message Mai 27th, 2009, 7:53 am

Bonjour les amis.
Je peux vous dire que, même en passant le deuxième paramètre "Vrai" à la fonction OI.Directory.Delete (), il ya des moments où il donne toujours ce message d'erreur «Le répertoire n'est pas vide."
La seule chose que je puisse penser, c'est que, sachant que le second paramètre est ptrecisamente pour cette fonction ne peut pas supprimer le fichier est conservé par un processus de Windows.
Comme il arrive parfois que nous essayons de supprimer un fichier, Windows ne le permet pas. J'ai ce cas, j'ai un petit programme nommé "Unlocker" qui est merveilleux quand je ne peux pas supprimer le fichier, ouvrez le logiciel, je déverrouillée, alors je peux le supprimer. :oops:
Genial! Mais alors, comme cela serait fait en VB.NET, afin de débloquer ce dossier, puis être en mesure de lancer le IO.Directory.Delete ()???
Exlpicado avoir de l'espoir.
Merci, et salutations Cuidense!
  • UPSGuy
  • Lurker ಠ_ಠ
  • Web Master
  • Avatar de l’utilisateur
  • Inscription: Juil 25, 2005
  • Messages: 2735
  • Loc: Nashville, TN
  • Status: Offline

Message Mai 27th, 2009, 2:22 pm

Ive a toujours utilisé la récursivité pour les fichiers d'un suivi par un directory.delete...

Code: [ Select ]
string[] fileList = Directory.GetFiles(TargetDirectory);
foreach (string sf in fileList)
    FileInfo(sf).Delete();
Directory.Delete(TargetDirectory);
  1. string[] fileList = Directory.GetFiles(TargetDirectory);
  2. foreach (string sf in fileList)
  3.     FileInfo(sf).Delete();
  4. Directory.Delete(TargetDirectory);
I'd love to change the world, but they won't give me the source code.
  • UPSGuy
  • Lurker ಠ_ಠ
  • Web Master
  • Avatar de l’utilisateur
  • Inscription: Juil 25, 2005
  • Messages: 2735
  • Loc: Nashville, TN
  • Status: Offline

Message Mai 27th, 2009, 2:23 pm

Ive a toujours utilisé la récursivité pour les fichiers d'un suivi par un directory.delete...

Code: [ Select ]
 
foreach (string sf in Directory.GetFiles(TargetDirectory))
    FileInfo(sf).Delete();
Directory.Delete(TargetDirectory);
 
  1.  
  2. foreach (string sf in Directory.GetFiles(TargetDirectory))
  3.     FileInfo(sf).Delete();
  4. Directory.Delete(TargetDirectory);
  5.  
I'd love to change the world, but they won't give me the source code.

Afficher de l'information

  • Total des messages de ce sujet: 10 messages
  • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 113 invités
  • Vous ne pouvez pas poster de nouveaux sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas éditer vos messages
  • Vous ne pouvez pas supprimer vos messages
  • Vous ne pouvez pas joindre des fichiers
 
 

© 2011 Unmelted, LLC. Ozzu® est une marque déposée de Unmelted, LLC