CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

入门级问题:获取指定文件夹中所有文件 [100分]

楼主AlvaChin(百尺竿头,卧薪尝胆)2002-09-11 14:15:13 在 .NET技术 / C# 提问

获取指定文件夹中所有文件,显示出来[比如一个列表框],如果是子文件夹,则深入进去,但不显示子文件夹名。  
   
  提供源码立刻结帖! 问题点数:100、回复次数:7Top

1 楼Nicholai(Nicholai)回复于 2002-09-11 14:26:45 得分 90

如果你只是要一个目录的文件列表的话,可以用这个:  
   
  using   System;  
  using   System.IO;  
  .....  
   
  string   path   =   @"C:\";  
  string[]   files   =   Directory.GetFiles(path);  
   
  我不知道你说的“深入进去”是什么意思,  
  但如果要获得子文件夹列表:  
   
  string[]   subdir   =   Directory.GetDirectories(path);Top

2 楼AlvaChin(百尺竿头,卧薪尝胆)回复于 2002-09-11 14:36:21 得分 0

我的意思是打印出一个文件夹中的所有文件的列表,包括子文件夹中的文件,但是不包括它的子文件夹名称。所谓“深入进去”,就是把子文件夹中的文件列表也提取出来。  
   
  谢谢你的回答。Top

3 楼Nicholai(Nicholai)回复于 2002-09-11 14:47:32 得分 0

你想做成一个树形结构?Top

4 楼icecools(浮生若梦)回复于 2002-09-11 14:49:22 得分 10

我以前写的一个去处目录下所有文件的只读属性的程序,不过是js的,大概差不多把,主要用个递归函数  
        function   RemoveReadonly(sFolder)  
        {  
        var   fso,   f,   fc,   s,fileE,aFile;  
        var   WshShell   =   WScript.CreateObject   ("WScript.Shell");  
        fso   =   new   ActiveXObject("Scripting.FileSystemObject");  
        fc   =   new   Enumerator(sFolder.SubFolders);  
        fileE   =   new   Enumerator(sFolder.Files);  
        for(;!fileE.atEnd();fileE.moveNext())  
        {  
        aFile=fileE.item();  
                aFile.attributes=0;  
        }  
   
        for   (;   !fc.atEnd();   fc.moveNext())  
        {  
  RemoveReadonly(fc.item());  
        }  
        }  
   
        var   f,fso;  
        var   WshShell   =   WScript.CreateObject   ("WScript.Shell");  
        fso   =   new   ActiveXObject("Scripting.FileSystemObject");  
        f   =   fso.GetFolder(WshShell.CurrentDirectory);  
        RemoveReadonly(f);  
  Top

5 楼AlvaChin(百尺竿头,卧薪尝胆)回复于 2002-09-11 14:52:19 得分 0

不是,是想把文件列表加入列表框.我有C++[Visual   C++]的源码,可是,在C#中没有对应的类.  
   
  Top

6 楼Nicholai(Nicholai)回复于 2002-09-11 15:20:50 得分 0

using   System;  
  using   System.IO;  
  using   System.Text.RegularExpressions;  
  using   System.Collections;  
   
  public   string[]   GetFiles(string   path)  
  {  
          ArrayList   files   =   new   ArrayList();  
          files.AddRange(   Directory.GetFiles(path)   );  
          string[]   subdirs   =   Directory.GetDirectories(path);  
          foreach   (string   dir   in   subdirs)  
          {  
                  files.AddRange(   GetFiles(dir)   );  
          }  
          string[]   ret   =   new   string   [files.Count];  
          files.CopyTo(ret,   0);  
          return   ret;  
  }Top

7 楼Nicholai(Nicholai)回复于 2002-09-11 15:24:48 得分 0

本来想用   RegularExpression   来去掉目录名称。但是写出来以后忘了Top

相关问题

  • 请问如何获取指定文件夹的大小?
  • 如何获取指定文件夹(包括该文件夹下的子目录)所包含的文件数目!
  • 用ASP怎样获取一个指定文件夹中的文件名称?
  • 获取文件夹中指定后缀名的文件的方法
  • 怎样打开指定的文件夹?
  • copy指定文件夹的文件?
  • 如何指向指定的文件夹
  • 求:怎样DELETE指定文件夹?
  • 如何掩藏指定的文件夹?
  • 请问如何获取文件夹

关键词

  • 文件夹
  • 文件
  • 列表
  • removereadonly
  • sfolder
  • afile
  • fso
  • wscript
  • wshshell
  • fc

得分解答快速导航

  • 帖主:AlvaChin
  • Nicholai
  • icecools

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo