zonble’s promptbook

2008 年 3 月 8 日

我的電腦 在使用 .Net framwork 時讀取 MediaPath 目錄中的內容

在 Windows 作業系統中,會將一些預設的系統音效檔案,裝在 Windows 安裝目錄下的 Media 目錄裡頭—比方說,如果你將 WIndows XP 裝在C:\Windows 目錄下,那麼,就是 C:\Windows\media 這個目錄。如果您想要使用一些系統內建的音效檔案,除了 System.Media.SystemSounds 之外,大概就得往這個目錄找。

然而這個目錄不一定會是在同一個位置,因為 WIndows 系統很有可能安裝在其他的地方,System.Environment.SpecialFolder 所提供的幾個提供特殊目錄的路徑 Class Method 中,又剛好沒有提供 Media 這個目錄的路徑位置。

在 .Net Framework 中,想要知道這個路徑究竟該是哪個位置,就只能夠往 registry 動腦筋,至少我們可以從 registry 設定中,找到這筆資料。如果要透過 C# 實做,首先我們要引入 Microsoft.Win32 這個 name space:

using Microsoft.Win32;

然後使用 RegistryKey 這個類別,讀取 registry。

RegistryKey registryKey = Registry.LocalMachine;
registryKey = registryKey.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion", false);
string m_mediaPath = registryKey.GetValue("MediaPath").ToString();

最後就可以取得音效檔案的列表了。

DirectoryInfo dirInfo = new DirectoryInfo(m_mediaPath);
FileInfo[] fileInfo = dirInfo.GetFiles("*.wav");

文章分類: — zonble @ 6:27 am #

一則留言回應 »

  1. 您好
    非常喜歡您的部落格
    是這樣的
    因為想要開發msn機器人
    但是不管Blobsy或Maldivian Underground都找不到可以下載的安裝檔或是網頁
    想請問是否可以提供給我
    因為很多連結都已經失效了
    非常謝謝
    希望能夠以email與您聯絡!

    來自 洋 的 迴響留言 — 2008 年 3 月 11 日 @ 1:59 pm

留言回應

XHTML: 您可以使用的 HTML 語法如下: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>


Powered by WordPress 2.6.2, Yichi.org,
ideas and cares
.

Weizhong Yang(a.k.a zonble)
Email:zonble@gmail.com
AIM: zonble@man.com