有需求或技術問題可以隨時跟我連絡 (MSN上線時)

2009年12月30日 星期三

XML Node 查詢操作

XML幾乎已經算是很廣泛的用於設定檔及一些資料的格式化存檔.既然如此,對它的內容的查詢就會經常的出現在程式之中,今天寫一個簡當的範例提供參考...

XML格式及內容:

<Names>
    <Name>
        <Name>Johnny</Name>
        <Tel>0926010111</Tel>
    </Name>
    <Name>
        <Name>Tim</Name>
        <Tel>0930817118</Tel>
    </Name>
</Names>

操作方式:

XmlDocument xml = new XmlDocument();
xml.Load(new StreamReader(myXmlString)); //myXmlString為上面檔案檔名
XmlNodeList xnList = xml.SelectNodes("/Names/Name");
foreach (XmlNode xn in xnList)
{
  string Name = xn["Name"].InnerText;
  string Tel = xn["Tel"].InnerText;
  Console.WriteLine("Name: {0} Tel: {1}", Name, Tel);
}

輸出:

Name: Johnmy Tel: 0926010111

Name: Tim Tel: 0930817118




檔案屬性操作

(1)取得檔案屬性

string filePath = @"c:\test.txt"; 

FileAttributes fileAttributes = File.GetAttributes(filePath);

(2)設定檔案屬性

// 清除所有檔案屬性

File.SetAttributes(filePath, FileAttributes.Normal);

// 只設定封存及唯讀屬性

File.SetAttributes(filePath, FileAttributes.Archive | FileAttributes.ReadOnly);

(3)檢查檔案屬性

// 檢查檔案是否有唯讀屬性

bool isReadOnly = ((File.GetAttributes(filePath) & FileAttributes.ReadOnly) == FileAttributes.ReadOnly);

// 檢查檔案是否有隱藏屬性

bool isHidden = ((File.GetAttributes(filePath) & FileAttributes.Hidden) == FileAttributes.Hidden);

// 檢查檔案是否有封存屬性

bool isArchive = ((File.GetAttributes(filePath) & FileAttributes.Archive) == FileAttributes.Archive);

// 檢查檔案是否有系統屬性

bool isSystem = ((File.GetAttributes(filePath) & FileAttributes.System) == FileAttributes.System);

(4)加入某些屬性給檔案

// 設定隱藏屬性   

File.SetAttributes(filePath, File.GetAttributes(filePath) | FileAttributes.Hidden);

// 設定封存及唯讀屬性  

File.SetAttributes(filePath, File.GetAttributes(filePath) | (FileAttributes.Archive | FileAttributes.ReadOnly));