.net中應用程序域的概念

在.NET平臺下,程序集並沒有直接承載在進程中(而傳統的win32程序是直接承載的)。實際上.NET可執行程序承載在進程的壹個邏輯分區中,術語稱為應用程序域(也稱AppDomain)。可見,壹個進程可以包含多個應用程序域,每壹個應用程序域中承載壹個.NET可執行程序,這樣的好處如下:

  應用程序域是.NET平臺操作系統獨立性的關鍵特性。這種邏輯分區將不同操作系統加載可執行程序的差異抽象化了。

  和壹個完整的進程相比,應用程序域的CPU和內存占用要小的多。因此CLR加載和卸載應用程序域比起完整的進程來說也快的多。

  應用程序域為承載的應用程序提供了深度隔離。如果進程中壹個應用程序域失敗了,其他的應用程序域也能保持正常。

  AppDomain的主要成員:

  CreateDomain():該靜態方法在當前進程中創建壹個新的應用程序域。由於CLR能夠根據需要創建應用程序域,所以必須調用這個方法的機會很少。

  GetCurrentThreadId():該靜態方法返回當前應用程序域上活動的線程ID。

  UnLoad():該靜態方法在進程中卸載指定的應用程序域。

  BaseDirectory:獲取基目錄,該目錄用於探測相關的程序集。

  CreateInstance():在指定程序集文件中創建指定類型的新實例。

  ExecuteAssembly():根據文件名在應用程序域中執行程序集。

  GetAssemblies():獲取已加載到此應用程序域中的.NET程序集(基於COM和C的二進制文件除外)。

  Load():動態加載程序集到當前應用程序域。

用註冊表更改桌面路徑、開始菜單路徑方法

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\desktop

  首先要在“開始”——“運行”內輸入“regedit”打開註冊表編輯器,然後要在“文件”下拉菜單中的“導出”功能備份好註冊表,以防萬壹,接著在左側窗口依次打開:

  HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders

  在右側窗口裏,妳看到的“名稱”就代表那些特殊的文件夾,“數據”就是它們所對應的默認存儲路徑。修改默認的路徑就可以讓妳的桌面文件夾移動了,下面是所有的.

  下面介紹壹下各個“名稱”所代表的文件夾

  名稱 含義 默認路徑

  AppData 應用程序數據目錄 C:\Documents and Settings\User name\Application Data

  Cookies Cookies路徑 C:\Documents and Settings\User name\Cookies

  Desktop 桌面路徑 C:\Documents and Settings\User name\桌面

  Favorites 收藏夾 C:\Documents and Settings\User name\Favorites

  NetHood NetHood路徑 C:\Documents and Settings\User name\NetHood

  Personal 我的文檔 C:\Documents and Settings\User name\My Documents

  PrintHood 打印 C:\Documents and Settings\User name\PrintHood

  Recent 文檔項路徑 C:\Documents and Settings\User name\Recent

  SendTo SendTo路徑 C:\Documents and Settings\User name\SendTo

  Start Menu 開始菜單路徑 C:\Documents and Settings\User name\「開始」菜單

  Templates 新建文件目錄 C:\Documents and Settings\User name\Templates

  Programs 程序菜單路徑 C:\Documents and Settings\User name\「開始」菜單\程序

  Startup 啟動路徑 C:\Documents and Settings\User name\「開始」菜單\程序\啟動

  History 網頁歷史記錄 C:\Documents and Settings\ User name \Local Settings\History

  My Pictures 圖片收藏 C:\Documents and Settings\User name\My Documents\My Pictures

  My Music 我的音樂 C:\Documents and Settings\User name\My Documents\My Music

  My Video 我的視頻 C:\Documents and Settings\User name\My Documents\My Videos

  Cache Internet臨時文件夾 C:\ Documents and Settings\User name \Temporary Internet Files

  這些文件夾稱為Shell文件夾

  其中“User name”為當前用戶的名稱

  了解了對應的文件夾,就可以根據自己的需要去更改對應的路徑了。(千萬不要在這兒改啊,那樣可就瞎忙乎了,系統重起後它會恢復成原來的路徑)

  在同壹層中妳可以看到壹個“User Shell Folders”的子鍵,即在HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ User Shell Folders

  這裏包括了用戶定制的所有Shell文件夾的值項。只要通過修改“數據”,就可以改變它們的存儲路徑。雙擊需要修改的名稱,在彈出的“編輯字符串”的“數值數據”裏填上妳要更改的完整路徑,按下“確定”就完成了。如果沒有妳需要的,可以在右邊窗口單擊鼠標右鍵,選擇“新建”菜單中的“字符串值”命令,對應上表,添加壹個用於Shell文件夾的字符串值。

  在上面的文件夾中,並沒有outlook的通訊簿和郵件存放路徑,它們分別在

  通訊簿路徑:

  HKEY_CURRENT_USER\Software\Microsoft\WAB\WAB4\Wab File Name主鍵下,將“默認”鍵值改為妳需要的路徑。

  郵件存放路徑:

  HKEY_CURRENT_USER\Identities\{8150FA22-A51C-4993-8A96-DC4B9A6B4C55}\Software\Microsoft\Outlook Express\5.0下,將 “Store Root”鍵值改為妳需要的路徑。

詳細分析Linux du命令的使用

Linux du命令也是查看使用空間的,但是與df命令不同的是Linux du命令是對文件和目錄磁盤使用的空間的查看,還是和df命令有壹些區別的,這裏介紹Linux du命令。

  du:查詢檔案或目錄的磁盤使用空間

  a:顯示全部目錄和其次目錄下的每個檔案所占的磁盤空間

  b:大小用bytes來表示 (默認值為k bytes)

  c:最後再加上總計 (默認值)

  s:只顯示各檔案大小的總合

  x:只計算同屬同壹個檔案系統的檔案

  L:計算所有的檔案大小

  常用命令:du –a

  操作詳解

  引用

  指令 du 能以指定的目錄下的子目錄為單位,顯示每個目錄內所有檔案所占用的磁盤空間大小。例如:

  # du -h /etc

  104K /etc/defaults

  6.0K /etc/X11

  8.0K /etc/bluetooth

  4.0K /etc/gnats

  52K /etc/isdn

  388K /etc/mail

  68K /etc/mtree

  2.0K /etc/ntp

  38K /etc/pam.d

  44K /etc/periodic/daily

  6.0K /etc/periodic/monthly

  42K /etc/periodic/security

  16K /etc/periodic/weekly

  110K /etc/periodic

  6.0K /etc/ppp

  318K /etc/rc.d

  2.0K /etc/skel

  130K /etc/ssh

  10K /etc/ssl

  1.7M /etc

  我們目樣使用 -h 參數來顯示 human-readable 的格式。在應用時,我們可以使用 du 這個指令來查看哪個目錄占用最多的空間。不過,du 的輸出結果通常很長,我們可以加上 -s 參數來省略指定目錄下的子目錄,而只顯示該目錄的總合即可:

  # du -sh /etc

  1.7M /etc

  在查看目錄的使用情形時,我們可以將輸出結果導到 sort 指令進行排序,以了解哪個檔案用了最多的空間:

  # du /etc | sort -nr | more

  1746 /etc

  388 /etc/mail

  318 /etc/rc.d

  130 /etc/ssh

  110 /etc/periodic

  104 /etc/defaults

  68 /etc/mtree

  52 /etc/isdn

  44 /etc/periodic/daily

  42 /etc/periodic/security

  38 /etc/pam.d

  16 /etc/periodic/weekly

  10 /etc/ssl

  8 /etc/bluetooth

  6 /etc/ppp

  6 /etc/periodic/monthly

  6 /etc/X11

  4 /etc/gnats

  2 /etc/skel

  2 /etc/ntp

  sort 的參數 -nr 表示要以數字排序法進行反向排序,因為我們要對目錄大小做排序,所以不可以使用 human-readable 的大小輸出,不然目錄大小中會有 K、M 等字樣,會造成排序不正確。

  現在明了了Linux du命令和Linux df命令的不同之處了嗎。