C# 如何获取指定目录包含的文件和子目录

 如何获取指定目录包含的文件和子目录
1. DirectoryInfo.GetFiles():获取目录中(不包含子目录)的文件,返回类型为FileInfo[],支持通配符查找;
2. DirectoryInfo.GetDirectories():获取目录(不包含子目录)的子目录,返回类型为DirectoryInfo[],支持通配符查找;
3. DirectoryInfo. GetFileSystemInfos():获取指定目录下(不包含子目录)的文件和子目录,返回类型为FileSystemInfo[],支持通配符查找;
如何获取指定文件的基本信息;
FileInfo.Exists:获取指定文件是否存在;
FileInfo.Name,FileInfo.Extensioin:获取文件的名称和扩展名;
FileInfo.FullName:获取文件的全限定名称(完整路径);
FileInfo.Directory:获取文件所在目录,返回类型为DirectoryInfo;
FileInfo.DirectoryName:获取文件所在目录的路径(完整路径);
FileInfo.Length:获取文件的大小(字节数);
FileInfo.IsReadOnly:获取文件是否只读;
FileInfo.Attributes:获取或设置指定文件的属性,返回类型为FileAttributes枚举,可以是多个值的组合
FileInfo.CreationTime、FileInfo.LastAccessTime、FileInfo.LastWriteTime:分别用于获取文件的创建时间、访问时间、修改时间;
---------------------------------
遍历文件夹
文件夹是树形结构,遍历算法有:广度优先级和深度优先级。
区别:广度首先查找同一层目录,深度首先遍历一条分支;有了这个区别,就可以确定链表的插入位置,即广度遍历插入点总在末尾;深度遍历插入点在首部。详细看代码。
public static void searchFile(String path, List<Object> resultList) {
File file = new File(path);
if (file.isDirectory()) {
LinkedList<File[]> levelLinked = new LinkedList<File[]>();
levelLinked.add(file.listFiles());
do {
File[] childFiles = levelLinked.remove(0);
for (File cf : childFiles) {
if (cf.isDirectory()) {
// 此处控制遍历的方向
levelLinked.add(cf.listFiles());// 广度
// levelLinked.add(0, cf.listFiles());//深度
} else {
String fileName = cf.getName();// 文件名,有后缀
String filePath = cf.getAbsolutePath();// 绝对路径
String fileParent = cf.getParent();// 上层路径,注意最后的'/'
// 比较算法,找到后放入集合
String[] sf = { fileName, fileParent, filePath };
resultList.add(sf);
}
}
} while (levelLinked.size() > 0);
}
}
此处加入一些API提供的工具类,希望有用。
1.多后缀判断,如.java、.class、.js等
String[] hz = {java,class,js};
Arrays.sort(hz);//下面的搜索需要排序,例如,class的顺序在java之前,如果不sort(),class文件不会被查找
Arrays.binarySearch(hz, fn_);//fn_文件后缀
如果明确目录的层次结构简单,递归算法也是不错的选择。
个人觉得,文件的搜索,应该单独起线程。

 

////////////////////////
采用递归的方式遍历,文件夹和子文件中的所有文件。
public void FindFile(string dirPath) //参数dirPath为指定的目录
{
//在指定目录及子目录下查找文件,在listBox1中列出子目录及文件
DirectoryInfo Dir=new DirectoryInfo(dirPath);
try
{
foreach(DirectoryInfo d in Dir.GetDirectories()//查找子目录
{
FindFile(Dir+d.ToString()+"");
listBox1.Items.Add(Dir+d.ToString()+""); //listBox1中填加目录名
}
foreach(FileInfo f in Dir.GetFiles("*.---")) //查找文件
{
listBox1.Items.Add(Dir+f.ToString()); //listBox1中填加文件名
}
}
catch(Exception e)
{
MessageBox.Show(e.Message);
}

}

用下面代码限制文件的类型:
foreach(FileInfo f in Dir.GetFiles("*.---")) //查找文件

“*.---”指要访问的文件的类型的扩展名
///////////////////////////////
代码改成如下,会不会好一点

DirectoryInfo TheFolder=new DirectoryInfo(folderFullName);

DirectoryInfo[] dirInfo = TheFolder.GetDirectories();
//遍历文件夹
foreach(DirectoryInfo NextFolder in dirInfo)
this.listBox1.Items.Add(NextFolder.Name);

FileInfo[] fileInfo = TheFolder.GetFiles();
//遍历文件
foreach(FileInfo Next...

时间: 2024-10-31 08:08:37

C# 如何获取指定目录包含的文件和子目录的相关文章

java 获取指定目录下的所有文件

Java ,如何获取指定目录下的所有文件呢? 看代码: Java代码   /***       * 获取指定目录下的所有的文件(不包括文件夹),采用了递归       *        * @param obj       * @return       */       public static ArrayList<File> getListFiles(Object obj) {           File directory = null;           if (obj inst

Android遍历获取指定目录的文件

我们经常遇到一个问题,需要获取指定目录的某些扩展名的文件,并将其存在Vector中,怎么来实现呢?   // 获取当前目录下所有的mp4文件 public static Vector<String> GetVideoFileName(String fileAbsolutePath) { Vector<String> vecFile = new Vector<String>(); File file = new File(fileAbsolutePath); File[]

python获取指定目录下所有文件名列表的方法

  本文实例讲述了python获取指定目录下所有文件名列表的方法.分享给大家供大家参考.具体实现方法如下: 这里python代码实现获取文件名列表的功能,可以指定文件中包含的字符,方便提取特定类型的文件名列表: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 #

php清空(删除)指定目录下的文件,不删除目录文件夹的实现代码_php技巧

web 开发中我们可能会碰到需要将某个目录下的所有文件清空,但不删除这个目录下的子目录(当然也不会删除被删除的根目录)的情况.那么对于这种只删除文件而不删除目录的方法,你是如何处理的呢?下面博主将要和你分享一下对于这个问题的一种比较好的解决办法.看下面这个函数: /*删除指定目录下的文件,不删除目录文件夹*/ function delFile($dirName){ if(file_exists($dirName) && $handle=opendir($dirName)){ while(f

树型结构列出指定目录里所有文件的PHP类

<? //以树型结构列出指定目录里的所有文件,如果你想知道自己某个目录里有哪些子目录和文件,可以调用这个类来查看,很方便的.     # 演示的例子:     $t = new TreeClimber( "asp" ); //新建物件,设置需要列出的目录:在此为asp目录     echo arrayValuesToString( $t->getFileList( $t->getPath() ), "<BR>\n" );        

python清除指定目录内所有文件中script的方法

  本文实例讲述了python清除指定目录内所有文件中script的方法.分享给大家供大家参考.具体如下: 将脚本存储为stripscripts.py 调用语法 : python stripscripts.py 使用范例 : python stripscripts.py d:myfiles ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37

PHP遍历并打印指定目录下所有文件实例

 这篇文章主要介绍了PHP遍历并打印指定目录下所有文件实例,需要的朋友可以参考下  代码如下: <?php //功能:遍历并打印指定目录下所有文件   function scan_dir($dir_name,$dir_flag=1) {  static $FILE_COUNT=1;                //记录文件数目 初值为1 目录名称不记  $FILE_COUNT--;                       //每调用一次scan_dir()函数自减1  @$dir_hand

filepath-Pathon 删除指定目录下的文件, 我是coding online,无法调试,代码报错,具体如下:

问题描述 Pathon 删除指定目录下的文件, 我是coding online,无法调试,代码报错,具体如下: #Delete all files under the pointed path import os filePath = raw_input("Input path where you want delete:n") #If file path is null, we should initial the variable "/home" if file

如何在MVC 的视图 中写一条语句,请求指定目录的aspx文件?

问题描述 如何在MVC的视图中写一条语句,请求指定目录的aspx文件,并传递一个参数值.我的一个MVC程序,控制器已经查询数据库,返回一个视图,我如何能把视图中得到数据作为一个参数请求另一个ASPX页面(那个aspx页面有有个播放器,我要把播放视频的地址传递过去,打开一个页面播放)?