asp.net取文件夹中所有文件名

要对文件进行操作首先要做的就是导入一个名字空间,代码:using System.IO;

第一种方法:

    string[] files = Directory.GetFiles(MapPath("proimg/img/"));
    先声明了一个字符数组,mapPath方法得到的是一个绝对路径。

    因为GetFiles返回的是一个string[]数组,所以用 files来接收它。
    然后我们在用一个foreach循环来遍历这个数组,取出所有值。
            foreach (string file in files)Response.Write(file);
    其实这样就可以完全把文件的路径都读出来了。但是我还是要把路径中的文件名取出来。于是我把这个代码变化一下,得到如下代码:
    foreach(string file in files)
    {
       string filename=Path.GetFileName(file);
       Response.Write(filename+"<br>");
    }

    这样就可以把这个文件夹下的所有的文件名都列出来了,Path.GetFileName就是获取路径中的文件名,以前老是把这个方法忘了,没办法就一点点的截取。现在想来自己真是笨,自己既然遇到这种情况微软也应该考虑得到,所以应该有这样一个现成的方法,现在想想真好,一个GetFileName就可以把文件名取出来,不用自己在去一点点的算。

第二种方法:

    上面的一种方法是用了Directory类,大家可以看到,我在用这个类的时候只需要导入IO的名字空间,所以说我这里用的GetFile方法是Directory的静态方法,下面这种方法要用到的是DirectoryInfo类,而这个类用的时候必须提前实例化。如果你要问这两个类有什么不同,我只能简单的说,如果你工作量大的话,你要选择用DirectoryInfo类,也就是我这里的第二种方法,如果处理量少的话,可以用第一种方法。

    我们先实例化DirectoryInfo这个类,代码: DirectoryInfo dir = new DirectoryInfo(MapPath("proimg/img/"));

    同样我们用一个foreach循环把文件名读出来。
        foreach (FileInfo dChild in dir.GetFiles("*.*"))//这个地方也可以用一个星号表示所有文件类型,当然也可以用*.txt,*.gif这样的方法去限定文件的类型
        {
            Response.Write(dChild.Name + "<BR>");//输出文件名
            Response.Write(dChild.FullName + "<BR>");//输出文件的全路径
        }
      
    大家可以发现第二种方法和第一种方法的区别就是FileInfo这个类里面的很多都是针对文件本身的属性,而第一种方法处理一些较繁杂的问题时可能会遇到很多的麻烦。FileInfo dChild in dir.GetFiles("*.*") 这里一定是 FileInfo而不是DirectoryInfo,因为GetFiles的返回类型不是DirectoryInfo而是FileInfo。

    以上这两种方法说的是遍历文件的两种方法,同样这种方法也适用于遍历文件夹下面的所有文件夹,只要用GetDirectories方法就可以了,如果级连特别多的话可以用一个通用方法来递归调用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值