111,126
社区成员
发帖
与我相关
我的任务
分享Directory.GetFiles("c:\\", "*.jpg", SearchOption.AllDirectories);using System.IO;
protected void Button1_Click(object sender, EventArgs e)
{
string dir = "E:\\a\\b\\d";
//string dir = "E:\\a";
string pdir = Directory.GetParent(dir).FullName;
DeleteFolder(dir);
DeletePEmptyFolder(pdir);
}
public void DeleteFolder(string dir)
{
if (Directory.Exists(dir))
{
foreach (string d in Directory.GetFileSystemEntries(dir))
{
if (File.Exists(d))
{
FileInfo fi = new FileInfo(d);
if (fi.Attributes.ToString().IndexOf("ReadOnly") != -1)
fi.Attributes = FileAttributes.Normal;
File.Delete(d);//直接删除其中的文件
}
else
DeleteFolder(d);//递归删除子文件夹
}
Directory.Delete(dir);//删除已空文件夹
}
}
public void DeletePEmptyFolder(string dir)
{
if (Directory.GetDirectories(dir).Length == 0)
{
string pdir = Directory.GetParent(dir).FullName;
if (Directory.Exists(dir))
Directory.Delete(dir);
DeletePEmptyFolder(pdir);
}
}
static void SearchDirectory(string directory, string filemask, List<string> collection, bool searchSubdirectories, bool ignoreHidden)
{
// If Directory.GetFiles() searches the 8.3 name as well as the full name so if the filemask is
// "*.xpt" it will return "Template.xpt~"
bool isExtMatch = Regex.IsMatch(filemask, @"^\*\..{3}$");
string ext = null;
string[] file = Directory.GetFiles(directory, filemask);
if (isExtMatch) ext = filemask.Remove(0,1);
foreach (string f in file) {
if (ignoreHidden && (File.GetAttributes(f) & FileAttributes.Hidden) == FileAttributes.Hidden) {
continue;
}
if (isExtMatch && Path.GetExtension(f) != ext) continue;
collection.Add(f);
}
if (searchSubdirectories) {
string[] dir = Directory.GetDirectories(directory);
foreach (string d in dir) {
if (ignoreHidden && (File.GetAttributes(d) & FileAttributes.Hidden) == FileAttributes.Hidden) {
continue;
}
SearchDirectory(d, filemask, collection, searchSubdirectories, ignoreHidden);
}
}
}