2015-07-10 198 views
1

這是我無法獲取代碼的東西。我有一個像下面這樣的xml:如何遍歷路徑並獲取目錄中文件的名稱?

<Root> 
    <MainFolder Name="Main Folder"> 
     <Folder Name="Folder1"> 
      <File Name="File1" /> 
     </Folder> 
     <Folder Name="Folder2"> 
      <File Name="File2" /> 
     </Folder> 
    </MainFolder> 
</Root> 

現在,從我的代碼中,我知道File1的位置。現在,這是我想要實現的:

  1. 從File1的位置(即主文件夾)返回2個級別。
  2. 從那裏顯示該文件夾中的每個文件夾和文件給用戶。

夥計們,我是C#的新手。我真的不知道如何繼續下去。任何幫助都會非常有用。提前致謝。

+0

如果我理解正確,這個問題與xml無關。你想知道如何瀏覽一個路徑並在目錄中顯示文件的名稱 – greenfeet

+3

LINQ to XML是你的朋友在這裏。我建議你閱讀一個很好的LINQ to XML教程,盡你所能地使用它,然後用你到目前爲止所嘗試的內容更新你的問題,以及出錯的地方(如果有的話)。 –

+0

不完全確定這裏要問的是什麼,但是如果它涉及到瀏覽目錄路徑,請查看以下內容:https://msdn.microsoft.com/en-us/library/System.IO.Path_methods(v= vs.110).aspx –

回答

0
XElement root = XElement.Load("file.xml"); 

// look for a File1 
var file1 = root.Descendants() 
    .Where(elem => elem.Attribute("Name").Value == "File1") 
    .Single(); 

// go 2 levels back 
var mainFolder = file1.Parent.Parent; 

// display each folder 
foreach (var folder in mainFolder.Elements()) 
{ 
    Console.WriteLine(folder.Attribute("Name").Value); 

    // display each file 
    foreach (var file in folder.Elements()) 
    { 
     Console.WriteLine(" " + file.Attribute("Name").Value); 
    } 
    Console.WriteLine(); 
} 
+0

謝謝亞歷山大。不能upvote。沒有足夠的代表點。此外,感謝quetzalcoatl的XML修正。 – Praveen

相關問題