0
我有一個小問題,讓所有的文件夾和子目錄下的所有文件。並且保持路徑..獲取目錄中的所有文件和所有文件的所有子目錄下
這裏是我的代碼這一刻..
這應該通過一切正確嗎?所有的子目錄和一切?
private List<String> DirSearch(string sDir)
{
List<String> files = new List<String>();
try
{
foreach (string f in Directory.GetFiles(sDir))
{
files.Add(f);
}
foreach (string d in Directory.GetDirectories(sDir))
{
files.AddRange(DirSearch(d));
}
}
catch (System.Exception excpt)
{
MessageBox.Show(excpt.Message);
}
return files;
}
但我得到的是1根文件夾中的隨機文件從根文件夾的許多子目錄。 這也是我怎麼稱呼它:
string folderName = folderBrowserDialog1.SelectedPath;
addFilesFromFolder(DirSearch(folderName));
這是那就是把他們一個XML文件的方法...
private void addFilesFromFolder(List<string> files)
{
String appDataFolder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData).ToString();
String gpsPath = appDataFolder + "\\GameProfileSaver";
XmlDocument doc = new XmlDocument();
doc.Load(gpsPath + "\\games.xml");
XmlNode fileToAdd = doc.CreateElement("file");
String gName = comboBox1.SelectedItem.ToString();
XmlNode gameName = doc.SelectSingleNode("//games/game[gameName='" + gName + "']/Files");
foreach (string f in files)
{
fileToAdd.InnerText = f;
gameName.AppendChild(fileToAdd);
}
doc.Save(gpsPath + "\\games.xml");
}
您還可以查看[此GetFiles版本](http://msdn.microsoft.com/en-us/library/ms143316(v = vs.110).aspx)。它使用SearchOption參數支持遞歸。 –
你可能只是做'foreach(在Directory.GetFiles(sDir,「*」,SearchOption.AllDirectories)中的字符串f)而不具有遞歸功能。 – MikeSmithDev
閱讀[Directory.EnumerateFiles](http://msdn.microsoft.com/en-us/library/dd383571(v = vs.110).aspx) –