對於我們的幾個應用程序,我們使用應用程序配置文件。它通常只存儲一些目錄路徑和一些通用設置。我們通常將它保存在應用程序目錄中(C:/ Program Files/MyAppName)你在哪裏存儲你的setting.xml文件?
我們看到的一個問題是,用戶希望在以無權訪問的用戶身份登錄時編輯此應用程序到目錄。我們的應用程序通常安裝並初始配置爲管理員,但主要由(幾個不同的)有限用戶使用。
有沒有一種好的方法來讓所有用戶都可以讀取/寫入setting.xml文件?還是放好它的好地方?
對於我們的幾個應用程序,我們使用應用程序配置文件。它通常只存儲一些目錄路徑和一些通用設置。我們通常將它保存在應用程序目錄中(C:/ Program Files/MyAppName)你在哪裏存儲你的setting.xml文件?
我們看到的一個問題是,用戶希望在以無權訪問的用戶身份登錄時編輯此應用程序到目錄。我們的應用程序通常安裝並初始配置爲管理員,但主要由(幾個不同的)有限用戶使用。
有沒有一種好的方法來讓所有用戶都可以讀取/寫入setting.xml文件?還是放好它的好地方?
C:\ Documents and Settings \ All Users \ Application Data \ <您的應用程序>可能是一個體面的考慮因素。
應用程序數據文件夾或移動到註冊表。
本地化有多重要?如果本地化不是高優先級,則可以將文件存儲在%allusersprofile%\ Application Data \中 - 這是所有用戶帳戶都可訪問的appdata文件夾,並且無論安裝的位置如何,都可以工作,但只能在英文操作系統上安裝。
如果要將文件存儲在本地用戶的目錄中併爲每個用戶分配自己的文件,則可以使用%appdata% - 將完全本地化。但是,每個用戶都需要他們自己的副本,所以如果你需要一個通用的配置,它將不起作用。
如果您需要它對所有用戶都是共同的,並且100%本地化,那麼您需要做更多的工作。我試圖找到像%allusersappdata%這樣的東西,雖然我可以在線查找該字符串的引用,但我無法在自己的系統上使用它。我找到的解決方法是提取%appdata%以查找單詞Application Data的本地化文本,然後使用它瀏覽到%allusersprofile%下的該子文件夾 - 稍微複雜一些,但這是我可以找到的最堅固的方法做到這一點。有人請糾正我,如果有一個直接的路徑,您可以使用該文件夾。
通過CSIDL_COMMON_APPDATA到SHGetSpecialFolderPath得到可寫的共享根數據目錄。鑑於您可以爲您的公司和應用程序創建一個目錄。
+1倡導應用程序數據,-1倡導註冊表。你如何能夠在相同的答案中進步和退步? ;) – 2009-08-03 20:55:12