如何完全删除一个非空文件夹
2009-03-10 16:49
330 查看
System.IO.Directory.Delete(@"C:\abcdefg",true )
无论是否为空都回删除,但是如果里面有只读文件的话,会有错误提示
如果只读文件也要删除的话,要首先改变文件的属性,然后使用上述命令删除。
下面的代码就是改变文件属性的。
public static void RemoveReadonlyAttribute(DirectoryInfo dirInfo)
{
//文件夹属性更改
if ((dirInfo.Attributes & FileAttributes.ReadOnly) ==
FileAttributes.ReadOnly)
dirInfo.Attributes = FileAttributes.Normal;
//文件夹内全部的文件的属性更改
foreach (FileInfo fi in dirInfo.GetFiles())
if ((fi.Attributes & FileAttributes.ReadOnly) ==
FileAttributes.ReadOnly)
fi.Attributes = FileAttributes.Normal;
//再归更改文件属性
foreach (DirectoryInfo di in dirInfo.GetDirectories())
RemoveReadonlyAttribute(di);
}
===========================================================
附:递归遍历文件的方法
Code
private void FileList(FileSystemInfo f)//FileList为自己创建的方法
{
if (!f.Exists)//先判断f所指的文件或文件夹是否存在
{
return;
}
DirectoryInfo di = f as DirectoryInfo;//如果给定参数不是文件夹则退出,as用法可以去看我转载的"c# Is 和 As"
if (di == null)
{
return;
}
FileSystemInfo[] fs = di.GetFileSystemInfos();//获取文件夹中所有文件和文件夹
//下而对单个FileSystemInfo进行判断,如果是文件夹则进行递归操作
foreach (FileSystemInfo f2 in fs)
{
FileInfo file = f2 as FileInfo;
if (file != null)
{
//listBox1.Items.Add(file.Name);//如果是文件则进行操作
}
else
{
FileList(f2);
}
}
}
无论是否为空都回删除,但是如果里面有只读文件的话,会有错误提示
如果只读文件也要删除的话,要首先改变文件的属性,然后使用上述命令删除。
下面的代码就是改变文件属性的。
public static void RemoveReadonlyAttribute(DirectoryInfo dirInfo)
{
//文件夹属性更改
if ((dirInfo.Attributes & FileAttributes.ReadOnly) ==
FileAttributes.ReadOnly)
dirInfo.Attributes = FileAttributes.Normal;
//文件夹内全部的文件的属性更改
foreach (FileInfo fi in dirInfo.GetFiles())
if ((fi.Attributes & FileAttributes.ReadOnly) ==
FileAttributes.ReadOnly)
fi.Attributes = FileAttributes.Normal;
//再归更改文件属性
foreach (DirectoryInfo di in dirInfo.GetDirectories())
RemoveReadonlyAttribute(di);
}
===========================================================
附:递归遍历文件的方法
Code
private void FileList(FileSystemInfo f)//FileList为自己创建的方法
{
if (!f.Exists)//先判断f所指的文件或文件夹是否存在
{
return;
}
DirectoryInfo di = f as DirectoryInfo;//如果给定参数不是文件夹则退出,as用法可以去看我转载的"c# Is 和 As"
if (di == null)
{
return;
}
FileSystemInfo[] fs = di.GetFileSystemInfos();//获取文件夹中所有文件和文件夹
//下而对单个FileSystemInfo进行判断,如果是文件夹则进行递归操作
foreach (FileSystemInfo f2 in fs)
{
FileInfo file = f2 as FileInfo;
if (file != null)
{
//listBox1.Items.Add(file.Name);//如果是文件则进行操作
}
else
{
FileList(f2);
}
}
}
相关文章推荐
- windows7系统下如何创建一个别人无法删除的文件夹
- MFC 中 删除一个非空文件夹 (MFC 文件操作 一)
- Linux如何删除非空文件夹
- MFC 中 删除一个非空文件夹
- WinXP下如何删除非空目录(一个可行的特殊方法)
- C#控制台基础 directory删除一个非空的文件夹
- python 删除一个非空文件夹
- MFC 中 删除一个非空文件夹 (MFC 文件操作 一)
- 如何删除文件夹下所有的文件(包括非空目录和文件)????
- “rmdir: failed to remove ‘tmp’: Directory not empty”解决方案–Linux命令行如何删除非空文件夹
- 如何对一个文件夹进行创建和删除?
- 将一个非空目录的文件夹删除【Java文件编程】
- linux如何删除非空文件夹|linux怎么删除非空文件夹
- java如何删除非空文件夹
- 如何用JAVA删除一个非空的目录
- 如何删除一个文件夹
- 如何删除一个文件夹
- MFC 中 删除一个非空文件夹
- python删除一个非空文件夹竟然如此简单
- MFC 中 删除一个非空文件夹 (MFC 文件操作 一)