觉得是个超简单的问题,就是不知道怎么办了?????

omnipotent 2004-04-11 07:19:30
using System;
using System.IO;
namespace c1
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class myproduct
{
static int dirCounter=1;
static int indentLevel=-1;
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
public static void Main()
{
myproduct md=new myproduct();
string the=@"E:\ge";
DirectoryInfo dir=new DirectoryInfo(the);
md.ExploreDirectory(dir);
Console.WriteLine("\n找到{0}个目录\n",dirCounter);
}
public void ExploreDirectory(DirectoryInfo dir)
{
indentLevel++;
indentLevel=dir?????????

for (int i=0;i<indentLevel;i++)
{
Console.WriteLine(" ");
Console.WriteLine("({0}){1}({2})\n",indentLevel,dir.Name,dir.LastAccessTime);
DirectoryInfo [] directory=dir.GetDirectories();
foreach (DirectoryInfo newDir in directory)
{
dirCounter++;
ExploreDirectory(newDir);
}
indentLevel--;

}
}
}
这个程序是一级一级读取目录,直到完全读完,可是给indentLevel赋什么值啊???
...全文
55 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
omnipotent 2004-04-13
  • 打赏
  • 举报
回复
谢谢各位了,由于分数有限,没有得分的同志多多包涵了
cqing 2004-04-13
  • 打赏
  • 举报
回复
using System;
using System.IO;
namespace c1
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class myproduct
{
static int dirCounter=1;
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
public static void Main()
{
myproduct md=new myproduct();
string the=@"D:\ruby\doc";
DirectoryInfo dir=new DirectoryInfo(the);
Console.WriteLine("(0){0}({1})",the,dir.LastAccessTime);
md.ExploreDirectory(dir,1);
Console.WriteLine("\n找到{0}个目录\n",dirCounter);
Console.ReadLine();
}
public void ExploreDirectory(DirectoryInfo dir,int indentLevel)
{

DirectoryInfo[] directory=dir.GetDirectories();
foreach(DirectoryInfo newDir in directory)
{
Console.Write(" "); for(int i=1;i<indentLevel;i++)
{
Console.Write("| "); }
Console.Write("|--"); Console.WriteLine("({0}){1}({2})",indentLevel,newDir.Name,newDir.LastAccessTime);
dirCounter++;
ExploreDirectory(newDir,indentLevel+1);
}
}
}
}
zhengjiang 2004-04-13
  • 打赏
  • 举报
回复
up.........
maksim_wei 2004-04-12
  • 打赏
  • 举报
回复
static int dirCounter=0;
static int indentLevel=-1;
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
public static void Main()
{
myproduct md=new myproduct();
string the=@"E:\CVS";
DirectoryInfo dir=new DirectoryInfo(the);
md.ExploreDirectory(dir);
Console.WriteLine("\n找到{0}个目录\n",dirCounter);
Console.ReadLine();
}
public void ExploreDirectory(DirectoryInfo dir)
{
dirCounter++;
indentLevel++;
Console.WriteLine("");
Console.WriteLine("({0}){1}({2})\n",indentLevel,dir.Name,dir.LastAccessTime);
DirectoryInfo [] directory=dir.GetDirectories();
foreach (DirectoryInfo newDir in directory)
ExploreDirectory(newDir);
indentLevel--;
}
按楼主的意思写的,试试看
omnipotent 2004-04-12
  • 打赏
  • 举报
回复
能找出目录来,可是列不出子目录来?
demoer 2004-04-12
  • 打赏
  • 举报
回复

indentLevel = dir.GetDirectories().Length;
再去掉最后的indentLevel--;
demoer 2004-04-12
  • 打赏
  • 举报
回复
indentLevel=dir?????????
改成indentLevel = dir.GetDirectorys().Length
行么?
omnipotent 2004-04-12
  • 打赏
  • 举报
回复
不行啊,程序循环一次就结束了,根本不能把所有的目录都读出来??
athossmth 2004-04-11
  • 打赏
  • 举报
回复
indentLevel=dir?????????
这一句完全不必要啊,这里indentLevel是用来记录当前目录是搜索出发目录下的第几层而已,前面indentLevel++;就已经完成了“到子目录,层数加一”的动作了啊。
brbrm 2004-04-11
  • 打赏
  • 举报
回复
try一下,
catch到异常就是读完了
:)很笨的办法

110,502

社区成员

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

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

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