c# 追蹤settings 檔案 )

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

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

   我們都知道app.config 檔案在產生或debug後都會儲存在相對的目錄下\應用檔案名稱.exe.config(視窗程序)

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

   在程式碼中修改設定的內容。代碼如下:

view plaincopy to clipboardprint?
  1. LoginSet.Default.IsSaveLog = true;  
  2. LoginSet.Default.LogName = "testUser";  
  3. LoginSet.Default.LogPassWord = "test";  
  4. LoginSet.Default.IpAddress =  "127.0.0.1";  
  5. LoginSet.Default.Save();  

LoginSet.Default.IsSaveLog = true;<br /> LoginSet.Default.LogName = "testUser";<br /> LoginSet.Default.LogPassWord = "test";<br /> LoginSet.Default.IpAddress = "127.0.0.1";<br /> LoginSet.Default.Save();

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

  開始尋找它的位置->

          可以肯定settings檔案的存放沒有在執行程式的目錄下,所以估計是儲存在系統硬碟的臨時目錄下。

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

         行蹤發現了,在系統硬碟的 C:\Documents and Settings 目錄下 尋找你的執行程式檔案名稱後 發現了這樣一個檔案,user.Config

  開啟檔案內容如下:

view plaincopy to clipboardprint?
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <configuration>  
  3.     <userSettings>  
  4.         <Test.LoginSet>  
  5.             <setting name="IsSaveLog" serializeAs="String">  
  6.                 <value>True</value>  
  7.             </setting>  
  8.             <setting name="LogName" serializeAs="String">  
  9.                 <value>testName</value>  
  10.             </setting>  
  11.             <setting name="LogPassWord" serializeAs="String">  
  12.                 <value>apace</value>  
  13.             </setting>  
  14.             <setting name="IpAddress" serializeAs="String">  
  15.                 <value>127.0.0.1</value>  
  16.             </setting>  
  17.         </Test.LoginSet>  
  18.     </userSettings>  
  19. </configuration>  

<?xml version="1.0" encoding="utf-8"?><br /><configuration><br /> <userSettings><br /> <Test.LoginSet><br /> <setting name="IsSaveLog" serializeAs="String"><br /> <value>True</value><br /> </setting><br /> <setting name="LogName" serializeAs="String"><br /> <value>testName</value><br /> </setting><br /> <setting name="LogPassWord" serializeAs="String"><br /> <value>apace</value><br /> </setting><br /> <setting name="IpAddress" serializeAs="String"><br /> <value>127.0.0.1</value><br /> </setting><br /> </Test.LoginSet><br /> </userSettings><br /></configuration>

找到了這正是我們需要尋找的檔案。

總結: 該檔案的發現 得到一個結論,.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 為程式版本號碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.