programing tip

C #은 폴더와 해당 폴더 내의 모든 파일 및 폴더를 삭제합니다.

itbloger 2020. 9. 13. 10:13
반응형

C #은 폴더와 해당 폴더 내의 모든 파일 및 폴더를 삭제합니다.


폴더와 해당 폴더 내의 모든 파일 및 폴더를 삭제하려고합니다. 아래 코드를 사용하고 있는데 오류가 발생합니다 Folder is not empty. 할 수있는 방법 에 대한 제안 사항이 있습니까?

try
{
  var dir = new DirectoryInfo(@FolderPath);
  dir.Attributes = dir.Attributes & ~FileAttributes.ReadOnly;
  dir.Delete();
  dataGridView1.Rows.RemoveAt(dataGridView1.SelectedRows[i].Index);
}
catch (IOException ex)
{
  MessageBox.Show(ex.Message);
}

dir.Delete(true); // true => recursive delete

매뉴얼 읽기 :

Directory.Delete 메서드 (String, Boolean)

Directory.Delete(folderPath, true);

시험:

System.IO.Directory.Delete(path,true)

이렇게하면 권한이 있다고 가정하고 "경로"아래에있는 모든 파일과 폴더가 재귀 적으로 삭제됩니다.


어, 그냥 전화하는 건 Directory.Delete(path, true);어때?


Directory.Delete의 방법은 재귀 부울 매개 변수가 있습니다, 당신이 무엇을해야한다


다음을 사용해야합니다.

dir.Delete(true);

해당 폴더의 내용도 재귀 적으로 삭제합니다. MSDN DirectoryInfo.Delete () 오버로드를 참조하십시오 .


이 시도.

namespace EraseJunkFiles
{
    class Program
    {
        static void Main(string[] args)
        {
            DirectoryInfo yourRootDir = new DirectoryInfo(@"C:\somedirectory\");
            foreach (DirectoryInfo dir in yourRootDir.GetDirectories())
                    DeleteDirectory(dir.FullName, true);
        }
        public static void DeleteDirectory(string directoryName, bool checkDirectiryExist)
        {
            if (Directory.Exists(directoryName))
                Directory.Delete(directoryName, true);
            else if (checkDirectiryExist)
                throw new SystemException("Directory you want to delete is not exist");
        }
    }
}

public void Empty(System.IO.DirectoryInfo directory)
{
    try
    {
        logger.DebugFormat("Empty directory {0}", directory.FullName);
        foreach (System.IO.FileInfo file in directory.GetFiles()) file.Delete();
        foreach (System.IO.DirectoryInfo subDirectory in directory.GetDirectories()) subDirectory.Delete(true);
    }
    catch (Exception ex)
    {
        ex.Data.Add("directory", Convert.ToString(directory.FullName, CultureInfo.InvariantCulture));

        throw new Exception(string.Format(CultureInfo.InvariantCulture,"Method:{0}", ex.TargetSite), ex);
    }
}

이 시도:

foreach (string files in Directory.GetFiles(SourcePath))
{
   FileInfo fileInfo = new FileInfo(files);
   fileInfo.Delete(); //delete the files first. 
}
Directory.Delete(SourcePath);// delete the directory as it is empty now.

참고URL : https://stackoverflow.com/questions/2222718/c-sharp-delete-a-folder-and-all-files-and-folders-within-that-folder

반응형