觉得是个超简单的问题,就是不知道怎么办了????? try一下,catch到异常就是读完了:)很笨的办法 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 indentLevel=dir????????? 这一句完全不必要啊,这里indentLevel是用来记录当前目录是搜索出发目录下的第几层而已,前面indentLevel++;就已经完成了“到子目录,层数加一”的动作了啊。 indentLevel=dir????????? 改成indentLevel = dir.GetDirectorys().Length行么? 是indentLevel = dir.GetDirectories().Length;再去掉最后的indentLevel--; 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--; }按楼主的意思写的,试试看 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); } } }} Visual Studio C#预处理命令不能补齐么? C#[求助]如何用for语句遍历LISTVIEW所有itens 和subitems 两地数据交换大大大问题 问c#调用dll的问题(请Knight94(愚翁)、kssys和各位高手看看 ) 将dataGrid中的数据导出到Excel中的问题 如何在关系中实现这样的遍历? 高手帮忙!很急的!多少分都行! 遇见plmm,散分~ 这里提供OutLookBar控件的WinForm版本,免费!! :) C# 基于套接字的聊天室 遇到一个问题 高分请教!!! 在线等侯C#三层开发中使用实体对象的实例源码 求助:在C#中,怎样查找调用API函数的写法
这一句完全不必要啊,这里indentLevel是用来记录当前目录是搜索出发目录下的第几层而已,前面indentLevel++;就已经完成了“到子目录,层数加一”的动作了啊。
改成indentLevel = dir.GetDirectorys().Length
行么?
indentLevel = dir.GetDirectories().Length;
再去掉最后的indentLevel--;
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--;
}
按楼主的意思写的,试试看
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);
}
}
}
}