我編寫了這個代碼以遞歸列出c#中的文件和文件夾。以C#遞歸列出文件和文件夾#
var filesInTheCurrentDirectory = System.IO.Directory.GetFiles(rootFolder);
if (!filesInTheCurrentDirectory.Any() && !System.IO.Directory.GetDirectories(rootFolder).ToList().Any())
{
return;
}
filesInTheCurrentDirectory.ToList().ForEach(file => System.IO.File.AppendAllText("e:\\personal\\tests.txt", System.IO.Path.GetFileName(file) + ":" + rootFolder + "\n"));
System.IO.Directory.GetDirectories(rootFolder).ToList().ForEach(recursivePrintFolders);
雖然這只是的偉大工程,問題是:
我使用遞歸。是這樣的
best
? (我試着寫了一個非遞歸函數,但是因爲我們不知道什麼是每個文件夾的深度提前)。如何評估此功能的性能?是
OlogN
還是O(n)
? (我很困惑,因爲沒有循環的版本。據我,如果兩個for
環,我可以把它O(n^2)
)
任何意見或指導的?
爲什麼不直接使用[正在使用的方法的重載](http://msdn.microsoft.com/zh-cn/library/ms143316(v = vs.110).aspx)您? –
你可以發佈你的非遞歸函數嗎? – liquidsnake786
@DanPuzey更正:這是超負荷:) –