入门级问题:获取指定文件夹中所有文件 [100分]
获取指定文件夹中所有文件,显示出来[比如一个列表框],如果是子文件夹,则深入进去,但不显示子文件夹名。
提供源码立刻结帖!
问题点数: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




