1. 浏览文件夹需要动态库支持。
对win7系统,需要把System.Design.dll拷贝到C:\Windows\System32,并regsvr32 System.Design.dll
在项目引用中加入这个dll;
using System.Windows.Forms.Design;
下面为遍历文件夹的类,使用方法为FolderDialog openFolder = new FolderDialog(); if (openFolder.DisplayDialog() == DialogResult.OK){};
public class FolderDialog : FolderNameEditor
{
FolderNameEditor.FolderBrowser fDialog = new
System.Windows.Forms.Design.FolderNameEditor.FolderBrowser();
public FolderDialog()
{
}
public DialogResult DisplayDialog()
{
return DisplayDialog("请选择一个文件夹");
}
public DialogResult DisplayDialog(string description)
{
fDialog.Description = description;
return fDialog.ShowDialog();
}
public string Path
{
get
{
return fDialog.DirectoryPath;
}
}
~FolderDialog()
{
fDialog.Dispose();
}
}
2. 遍历文件夹。
需要采用递归,所以需在递归函数外准备好一个list存储信息。
ArrayList FileList = new ArrayList();
ArrayList GetAll(DirectoryInfo dir)//搜索文件夹中的文件
{
//ArrayList FileList = new ArrayList();
FileInfo[] allFile = dir.GetFiles();
foreach (FileInfo fi in allFile)
{
FileList.Add(fi.FullName);
}
DirectoryInfo[] allDir = dir.GetDirectories();
foreach (DirectoryInfo d in allDir)
{
GetAll(d);
}
return FileList;
}
3. 选择文件并删除。
OpenFileDialog fd = new OpenFileDialog();
fd.Filter = "ir files (*.txt)|*.txt|All files (*.*)|*.*"; //过滤文件类型
//fd.InitialDirectory = Application.StartupPath + "\\Temp\\";//设定初始目录
fd.ShowReadOnly = true; //设定文件是否只读
DialogResult r = fd.ShowDialog();
if (r == DialogResult.OK)
{
textBox.Text = fd.FileName;
File.Delete(fd.FileName);
}