c# 追蹤settings 文件

   在網上有很多人問到settings文件存放的位置,本人看了一些文章都沒有給出明確的答案,所以讓我們一起來追蹤settings 文件到底存放在什麼位置,它是否存在加密保護。

   settings 爲設置文件,其功能類似於app.config 文件,但相比app.config settings 結構相對簡單,它只有名稱、類型、範圍、值四個屬性,並且不能更改結構(當然是在一般情況下,如要修改結構可以通過其它的方式)

   我們都知道app.config 文件在生成或debug後都會保存在相對的目錄下/應用文件名.exe.config(窗口程序)

   問題來了,項目中的 pro.settings 編譯後卻找不到對應的文件。

   在程序代碼中修改設置的內容。代碼如下:

 

 

  在程序中修改了事先定義的幾個測試值, 關掉程序後,重新啓動設置值確實更改成功,那就表明 settings 是存放在磁盤上的。

  開始尋找它的位置->

          可以肯定settings文件的存放沒有在執行程序的目錄下,所以估計是保存在系統盤的臨時目錄下。

          做一次簡單測試: 將執行程序拷貝一個副本到其它目錄 再執行發現原來的設置值回到了初始狀態,這就表明和應用程序的路徑有關係,  並且副本程序,與原程序的settings 設置文件沒有衝突,可獨立使用。

         行蹤發現了,在系統盤的 C:/Documents and Settings 目錄下 查找你的執行程序文件名後 發現了這樣一個文件,user.Config

  打開文件內容如下:

       

找到了這正是我們需要查找的文件。

 

總結: 該文件的發現 得到一個結論,.Net 程序運行時都會拷貝一個副本到當前用戶的臨時目錄下,零時目錄名是不確定的,但前部分可以確定,本人默認目錄是:C:/Documents and Settings/Administrator/Local Settings/Application Data/????/test.exe_Url_hgfoy0r3bz1vyaqbme2dl1uefmet0wso/1.0.0.0

  

         C:/Documents and Settings/Administrator/Local Settings/Application Data/ 這個是固定的,但會根據 不同用戶 Administrator有所變化

         ???? 是本人的系統版本

         test.exe 應用程序名

         Url_hgfoy0r3bz1vyaqbme2dl1uefmet0wso 這串代碼是根據你應用程序生成的MD5碼值

        1.0.0.0 爲程序版本號

 

     

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章