C#使用FIle.delete删除文件/文件夹提示对路径的访问被拒绝——解决方案

平台:Win10+VS2015

在写一个根据指定的文件夹名文件后缀删除所给目录下文件夹的小程序 ,运行时提示“对xxx路径的访问被拒绝”,导致删除失败。

解决方案如下:若删除的是单个文件,则需设置删除文件的属性,如下:

...

FileInfo[] files = dir.GetFiles();
...

foreach (FileInfo file in files)
{
    foreach(string key in keys)
    {
        //文件后缀名等于key才删除
        if (file.Extension== key)
        {
            //设置文件属性:下列方式2选1,效果是一样的
            //new FileInfo(file.FullName).Attributes = FileAttributes.Normal;
            File.SetAttributes(file.FullName, FileAttributes.Normal);


            File.Delete(file.FullName);//调用System.IO.File的静态方法
            file.delete();//调用成员函数删除
        }
    }
}

若删除的是文件夹,如下::

...

DirectoryInfo[] folders = dir.GetDirectories();
...

foreach (DirectoryInfo folder in folders)
{
    foreach(string key in keys)
    {
        //文件夹名等于key才删除
        if (folder.Name == key)
        {
            //参数为true,则递归删除子目录及文件;false的话,若文件夹非空则不执行删除操作并抛出异常
            folder.Delete(true);//调用成员函数删除folder及其子目录下所有内容
            //Directory.Delete(folder.FullName, true);//调用System.IO.Directory静态方法删除
        }
    }
}

本人对C#不太熟,特此记录一下。

 

 

 

 

 

 

 

你可能感兴趣的:(C#,C#,File.Delete)