File.Delete Access to the path is denied

前端 未结 5 977
无人共我
无人共我 2021-01-18 05:26

My console application program is creating some runtime files while it is working so what I want to do is delete all of these files on the application startup. I have tried

5条回答
  •  谎友^
    谎友^ (楼主)
    2021-01-18 06:15

    You say that the files are not open in another application, but it must be open within your application:

    //Create some directories to delete
    Directory.CreateDirectory("C:/Temp/DeleteMe");
    Directory.CreateDirectory("C:/Temp/DeleteMe/DeleteMe");
    File.Create("C:/Temp/DeleteMe/DeleteMeFile");//FileStream still open!!
    
    //Delete the files
    var directory = new DirectoryInfo("C:/Temp/DeleteMe");
    if (!directory.Exists) return;
    foreach (FileInfo file in directory.GetFiles())
    {
        file.Delete();
    }
    foreach (DirectoryInfo dir in directory.GetDirectories())
    {
        dir.Delete(true);
    }
    

    Make sure you dispose the file stream when you create the file

    //Create some directories to delete
    Directory.CreateDirectory("C:/Temp/DeleteMe");
    Directory.CreateDirectory("C:/Temp/DeleteMe/DeleteMe");
    using (File.Create("C:/Temp/DeleteMe/DeleteMeFile")) { }
    
    //Delete the files
    var directory = new DirectoryInfo("C:/Temp/DeleteMe");
    if (!directory.Exists) return;
    foreach (FileInfo file in directory.GetFiles())
    {
        file.Delete();
    }
    foreach (DirectoryInfo dir in directory.GetDirectories())
    {
        dir.Delete(true);
    }
    

提交回复
热议问题