通过指定路径访问路径下的文件,在C#的开发中主要利用了Directory类和DirectoryInfo类,简要介绍Directory类中的成员:命名空间
System.IO 命名空间
1、CreateDirectory,已重载,用于创建指定路径下的所有目录;
2、Delete,删除指定目录;
3、Exists,确定给定目录是否引用磁盘现有目录;说白点就是判断路径是否存在;
4、GetCreationTime,获取目录的创建时间和日期;
4、GetCurrentDirectory,获取应用程序的当前目录;
5、GetDirectories,获取指定目录下子目录的名称,返回值是一个字符串数组;
6、GetFiles,获取指定路径下的文件名称;
7、GetFileSystemEntries,获取指定路径下所有文件和子目录的名称;
8、GetParent,获取指定路径的父目录;
9、Move,将文件或目录移动到新位置;
(2)简要介绍下DirectoryInfo类的成员:
1、Create,创建指定目录;
2、Delete,从路径中删除DirectoryInfo和其内容
3、GetDirectories,获取当前目录的子目录;
4、GetFiles,获取当前目录下的文件列表;返回FileInfo[]类型的数组;
5、MoveTo,将 DirectoryInfo 实例及其内容移动到新路径。
代码实现:
/// <summary>
/// 打开文件
/// </summary>
private void bePath_Click(object sender, EventArgs e)
{
this.MenuList.Nodes.Clear();
FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog();
folderBrowserDialog.Description = "请选择目录:";
if (folderBrowserDialog.ShowDialog() == DialogResult.OK)
{
sPath = folderBrowserDialog.SelectedPath;
}
if (!string.IsNullOrEmpty(sPath))
{
this.bePath.Text = sPath;
TreeListNode ParentNode = this.MenuList.AppendNode(new object[] { sPath }, -1);
GetSubFile(sPath, ParentNode);
GetSubRoot(sPath, ParentNode);
}
}
/// <summary>
/// 获取路径的集合
/// </summary>
/// <param name="sPath"></param>
private void GetSubRoot(string sFilePath, TreeListNode ParentNode)
{
if (string.IsNullOrEmpty(sFilePath))
{
return;
}
string[] DirectoryList = Directory.GetDirectories(sFilePath);
foreach (string sDirectory in DirectoryList)
{
ParentNode = this.MenuList.AppendNode(new object[] { sDirectory }, ParentNode);
GetSubFile(sDirectory,ParentNode);
GetSubRoot(sDirectory,ParentNode);
}
}
/// <summary>
/// 获取路径下的文件
/// </summary>
/// <param name="sSubRootPath"></param>
/// <param name="ParentNode"></param>
private void GetSubFile(string sSubRootPath, TreeListNode ParentNode)
{
FileInfo[] ArrayileInfo;
DirectoryInfo pDirectoryInfo = new DirectoryInfo(sSubRootPath);
ArrayileInfo = pDirectoryInfo.GetFiles("*.");
if (ArrayileInfo.Length < 1)
{
return;
}
foreach (FileInfo pFileInfo in ArrayileInfo)
{
string sName = pFileInfo.Name;
MenuList.AppendNode(new object[] { sName }, ParentNode);
}
}