所以我試圖通過我的硬盤上的每個文件,但它會停止一旦它到達第2115(我認爲)循環。我相信這是一個堆棧溢出,因爲我使用遞歸,但我是C#的新手,真的不知道。這是我的代碼,非常感謝。通過文件遞歸循環停止突然
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Data;
namespace test_data
{
class Program
{
static string drive = Path.GetPathRoot(Environment.CurrentDirectory);
static void CrawlDir(string dir)
{
string[] dir_package = {};
List<string> dir_list = new List<string>();
foreach (string scan_dir in Directory.GetDirectories(dir))
{
try
{
dir_list.Add(scan_dir);
}
catch (System.Exception error)
{
Console.WriteLine(error.Message);
}
}
dir_package = dir_list.ToArray();
Process_Package(dir_package);
}
static void Main(string[] args)
{
CrawlDir(drive);
Console.ReadLine();
}
static void Process_Package(string[] package)
{
foreach (string dir in package)
{
Console.WriteLine(dir);
try
{
CrawlDir(dir);
}
catch (Exception)
{
Console.WriteLine("Error!");
}
}
}
}
}
您可能會在您嘗試訪問的其中一個子目錄中收到訪問被拒絕錯誤。嘗試查看Process_Package方法中的Catch語句中的異常,以查看發生錯誤的實際錯誤。 – TLiebe
@TimeSchmelter:不,遞歸只要Directory.GetDirectories()不返回結果就會暫停。 – Odrade