如题,我想遍历一个目录及其子目录下的文件(相对目录),并生成相应的文件索引链接(HTML格式,需要在一页全部显示)最好有源代码,谢谢
解决方案 »
- windows8系统,c#中,image控件,metro风格
- 使用IHttpModule实现URL重写
- web中引用lei
- tablelayoutpanel控件错误
- 关于用户访问方面的.请各位指点了.谢谢
- 高分求教:如何实现基于文件的全文索引(高度注意,不是数据库的全文索引)
- 怎么样才能打开一个链接窗口,使得窗口不出现工具栏和状态栏?而且不被上网助手拦截?
- 如何转换Doc中的对象(比如插入的AutoCad对象)为图片(300分求高手)
- 100元求购《Windows高级编程指南(第三版)》我是一个初学者,若你不用此书了,卖给我也帮助我吧,谢谢!!!
- 怎么加一个combobox到datagrid上面...谢谢
- asp.net怎么判断浏览器被关闭?怎么判断页面转到别的地址?
- 如何隐藏窗体的指定部份?
Dictionary<int, string> pa = new Dictionary<int, string>();
int i = 1;
foreach (string str in file)
{
Dictionary[i]= str;//文件路径
i++;
}
Dictionary里存放的是文件对应的路径
//我把ArrayList当成动态数组用,非常好用
public void GetAllDirList(string strBaseDir)
{
DirectoryInfo di=new DirectoryInfo(strBaseDir);
DirectoryInfo[] diA=di.GetDirectories();
for(int i=0;i<diA.Length;i++)
{
al.Add(diA[i].FullName);
//diA[i].FullName是某个子目录的绝对地址,把它记录在ArrayList中
GetAllDirList(diA[i].FullName);
//注意:递归了。逻辑思维正常的人应该能反应过来
}
}
最后,如何把所有目录信息从ArrayList中取出来呢?如下:
for(int i=0;i<al.Count;i++)
{
textBox1.AppendText(al[i].ToString()+" ");
//textBox1是容器,拷贝我的代码,注意要换一个你自己的容器
}本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/dcsoft/archive/2006/08/21/1103831.aspx
目前我困惑的还有,如何生成这个HTML页面,头大,小弟初学,请多指教
public void ParseDirectory(DirectoryInfo dInfo, StreamWriter sw)
{
sw.WriteLine(dInfo.FullName); foreach (DirectoryInfo d in dInfo.GetDirectories())
{
ParseDirectory(d, sw);
} foreach (FileInfo fInfo in dInfo.GetFiles())
{
sw.WriteLine(fInfo.FullName);
} }
主要代码就是这个了,如果你要输出成html文件,可以在sw添加,这是我运行以后的部分路径C:\Inetpub
C:\Inetpub\AdminScripts
C:\Inetpub\AdminScripts\adsutil.vbs
C:\Inetpub\AdminScripts\chaccess.vbs
C:\Inetpub\AdminScripts\contsrv.vbs
C:\Inetpub\AdminScripts\contweb.vbs
C:\Inetpub\AdminScripts\dispnode.vbs
C:\Inetpub\AdminScripts\disptree.vbs
C:\Inetpub\AdminScripts\findweb.vbs
C:\Inetpub\AdminScripts\mkwebdir.vbs
C:\Inetpub\AdminScripts\pausesrv.vbs
C:\Inetpub\AdminScripts\pauseweb.vbs
C:\Inetpub\AdminScripts\startsrv.vbs
C:\Inetpub\AdminScripts\startweb.vbs
C:\Inetpub\AdminScripts\stopsrv.vbs
C:\Inetpub\AdminScripts\stopweb.vbs
C:\Inetpub\AdminScripts\synciwam.vbs
<html>
<head>
</head>
<body>
<a href="file:///C:/Inetpub" name ="a1">C:\Inetpub</a>
</body>
</html>这就是一个简单的html页面,可以用sw直接输出啊sw.WriteLine("<html>");
sw.WriteLine("<head>");
...
StreamWriter sw = new StreamWriter(fs);
DirectoryInfo dInfo = new DirectoryInfo(this.textBox2.Text.Trim());
try
{
ParseDirectory(dInfo,sw);
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
sw.Flush();
sw.Close();
} MessageBox.Show("Done!");