public static void RemoveFiles(FileProcessing_Handle Handle, DirectoryInfo d) { // Obtém a lista de arquivos dessa subpasta FileInfo[] arquivos = d.GetFiles(); // Percorre a lista de arquivos da subpasta foreach (FileInfo a in arquivos) { try { if (Handle != null) { Handle(a.Name); } // O arquivo está marcado como ReadOnly? if ((a.Attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly) { // Sim! Então remove esse atributo... a.Attributes ^= FileAttributes.ReadOnly; } // Apaga o arquivo a.Delete(); } catch { continue; } } }
public static void RemoveDirectory(FileProcessing_Handle Handle, DirectoryInfo Directory) { if (Handle != null) { Handle(Directory.Name); } // Obtém as subspastas da pasta atual DirectoryInfo[] subpastas = Directory.GetDirectories(); // Percorre a lista de subpastas foreach (DirectoryInfo d in subpastas) { try { RemoveFiles(Handle, d); // Limpa as subpastas da subpasta atual RemoveDirectory(Handle, d); // A subpasta está marcada como ReadOnly? if ((d.Attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly) { // Sim! Então remove esse atributo... d.Attributes ^= FileAttributes.ReadOnly; } // Finalmente, apaga a subpasta d.Delete(); } catch { continue; } } // Finalmente apaga a pasta RemoveFiles(Handle, Directory); Directory.Delete(); }
public static void RemoveFiles(FileProcessing_Handle Handle, string DirectoryName) { DirectoryInfo d = new DirectoryInfo(DirectoryName); RemoveFiles(Handle, d); }