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

AlvaChin 2002-09-11 02:15:13
获取指定文件夹中所有文件,显示出来[比如一个列表框],如果是子文件夹,则深入进去,但不显示子文件夹名。

提供源码立刻结帖!
...全文
26 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Nicholai 2002-09-11
  • 打赏
  • 举报
回复
本来想用 RegularExpression 来去掉目录名称。但是写出来以后忘了
Nicholai 2002-09-11
  • 打赏
  • 举报
回复
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;
}
AlvaChin 2002-09-11
  • 打赏
  • 举报
回复
不是,是想把文件列表加入列表框.我有C++[Visual C++]的源码,可是,在C#中没有对应的类.

icecools 2002-09-11
  • 打赏
  • 举报
回复
我以前写的一个去处目录下所有文件的只读属性的程序,不过是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);
Nicholai 2002-09-11
  • 打赏
  • 举报
回复
你想做成一个树形结构?
AlvaChin 2002-09-11
  • 打赏
  • 举报
回复
我的意思是打印出一个文件夹中的所有文件的列表,包括子文件夹中的文件,但是不包括它的子文件夹名称。所谓“深入进去”,就是把子文件夹中的文件列表也提取出来。

谢谢你的回答。
Nicholai 2002-09-11
  • 打赏
  • 举报
回复
如果你只是要一个目录的文件列表的话,可以用这个:

using System;
using System.IO;
.....

string path = @"C:\";
string[] files = Directory.GetFiles(path);

我不知道你说的“深入进去”是什么意思,
但如果要获得子文件夹列表:

string[] subdir = Directory.GetDirectories(path);

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧