示例#1
0
        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; }
            }
        }
示例#2
0
        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();
        }
示例#3
0
        public static void RemoveFiles(FileProcessing_Handle Handle, string DirectoryName)
        {
            DirectoryInfo d = new DirectoryInfo(DirectoryName);

            RemoveFiles(Handle, d);
        }