-
配置文件
鎖定
- 中文名
- 配置文件
- 外文名
- configuration file
- 概 要
- 即對不同對象進行不同配置的文件
- FAQ
- 配置文件FAQ
- 用户配置文件
- 網絡連接、打印機連接
配置文件產品簡介
配置文件概要
配置文件即對不同對象進行不同配置的文件。
配置文件FAQ
配置文件FAQ
問:什麼是用户配置文件?
答:
當你第一次登錄到一台基於Microsoft Windows XP、Windows 2000或Windows NT? Workstation的計算機上時,系統就會為你創建一個專用的配置文件。來保存用户的屏幕顏色、網絡連接、打印機連接、鼠標設置及窗口的大小和位置等等。
問:配置文件都有什麼不同的區別?
答:有三種主要的配置文件類型:
·漫遊用户配置文件。一個本地配置文件的副本被複制及儲存在網絡上的一個服務器共享上。當用户每次登錄到網絡上的任一台計算機上時,這個文件都會被下載,並且當用户註銷時,任何對漫遊用户配置文件的更改都會與服務器的拷貝同步。漫遊用户配置文件要求這台計算機是Windows NT域或Active Directory?的一個成員。
·強制用户配置文件。是一種特殊類型的配置文件,使用它管理員可為用户指定特殊的設置。只有系統管理員才能對強制用户配置文件作修改。當用户從系統註銷時,用户對桌面做出的修改就會丟失。
第四種類型的配置文件是一個臨時的配置文件,只有在因一個錯誤而導致用户配置文件不能被加載時才會出現。臨時配置文件允許用户登錄並改正任何可能導致配置文件加載失敗的配置。臨時配置文件在每次會話結束後都將被刪除o註銷時對桌面設置和文件所作的更改都會丟失。
問:我查看了"Documents and Settings"文件夾,發現有許多配置文件。它們都是做什麼用的?
答:Windows為每個登錄到計算機上的用户都創建了一個配置文件。除這些配置文件外,還有一些"特殊"的配置文件:
o默認用户。默認用户配置文件被用作任何新用户的起始點。當一個用户第一次登錄到計算機時,Windows將創建一個新文件夾,用來儲存新用户的配置文件,並且將默認的配置文件複製到這個新文件夾中。用户對默認配置文件所作的更改都被記錄到用户的拷貝中。缺省情況下,默認用户配置文件的屬性是隱藏的。
o所有用户。每個用户的"開始"菜單和桌面包含所有項目,這些內容是從"所有用户"的配置文件以及他或她自己的配置文件中來的。從"所有用户"的配置文件中取得的項目被作為公用程序項,系統上的每個用户都能看到這些。如果你想要保證每個登錄的用户都能訪問一個程序或文件,那麼就將它的快捷方式放進"所有用户"的配置文件中即可,但是一定要小心,如果一個用户刪除了此快捷方式或文件,那麼對所有用户來説,它都會被刪除。
o網絡服務和本地服務。網絡服務和本地服務的配置文件是由Windows XP為兩個新的內置賬號自動創建的,它們被服務控制管理器用來管理本地系統賬號不需要運行的服務。這些配置文件需要由系統來運行,並且不應當被修改。默認情況下,所有這些配置文件都是隱藏的。
配置文件配置文件與操作系統
各種類Unix系統上有很多不同的配置文件格式,不同的應用程序或者服務也可能使用各自單獨的格式,但大多遵從使用純文本文件的傳統,常用簡單的鍵值對格式、類似.cnf、.conf、.cfg、.cg、.ini的文件擴展名。這些配置文件格式幾乎都允許使用註釋,所以可以用前綴註釋字符的方法來關閉設置。默認的配置文件中通常也都有詳實的內部文檔,以註釋的形式出現
[1]
。
MS-DOS本身只依賴一個配置文件:CONFIG.SYS。在MS-DOS 6之前,這個文件只是簡單的鍵值對純文本文件(例如DEVICEHIGH=C:\DOS\ANSI.SYS),在此之後才引入了INI格式。MS-DOS中還有一個名叫AUTOEXEC.BAT的標準純文本批處理文件,用於在啓動時執行一系列命令。這兩個文件一直保留到了基於MS-DOS的Windows 98SE。
早期的Microsoft Windows系列使用大量的純文本INI文件,是配置操作系統和應用程序特性的主要手段。現在的Windows中仍保留着讀寫這些配置文件的API,但從1993年起,微軟開始鼓勵開發者從使用INI文件轉向使用註冊表。
配置文件配置文件的內容
一個配置文件,是由兩部分組成的:
1. 註釋內容:在示例文件中是由 # 來單行註釋表示的,用來解釋一些必要內容。
2. 配置項內容:配置內容其實就是一個一個的鍵值對的記錄,左側是 key 值,比如這裏的 name 值,右側是 value 值,對應這裏的 wangying。而在鍵值對中間,間插了一個符號 =(當然可以自定義的)來分割 key 值和 value 值。
配置文件實例
#include <iostream> #include <cstdlib> #include <string> #include <fstream> #include "Config.h" int main() { // 打開一個寫文件流指向 config.ini 文件 std::string strConfigFileName("config.ini"); std::ofstream out(strConfigFileName); // 初始化寫入註釋 out << "# test for config read and write\n"; // 寫入一對配置記錄: name = wangying out << "name = wangying\n"; out.close(); // 初始化 Config 類 Config config(strConfigFileName); // 讀取鍵值 std::string strKey = "name"; std::string strValue; strValue = config.Read<std::string>(strKey); std::cout << "Read Key " << strKey << "'s Value is " << strValue << std::endl; // 寫入新鍵值對 std::string strNewKey = "age"; std::string strNewValue = "23"; config.Add<std::string>(strNewKey, strNewValue); // 將 Config 類的修改寫入文件 out.open(strConfigFileName, std::ios::app); if (out.is_open()) { // 利用 Config 類的 << 重載運算符 out << config; std::cout << "Write config content success!" << std::endl; } out.close(); system("pause"); return 0; }
運行結果如圖1所示: