對於dot net程序,哪裏是存儲序列化數據的「正確」位置?我應該在哪裏保存序列化的數據文件?
在/ user/username文件夾中? Program Files/MyAppName /?其他地方?
對於dot net程序,哪裏是存儲序列化數據的「正確」位置?我應該在哪裏保存序列化的數據文件?
在/ user/username文件夾中? Program Files/MyAppName /?其他地方?
This blog post來自微軟的Pat Altimore建議了許多位置,具體取決於您嘗試存儲的數據類型。
.NET提供了特殊的枚舉值,您可以將其傳遞到System.Environment.GetFolderPath
,以獲取所需的「特殊」文件夾。
簡而言之:
SpecialFolder.ApplicationData
。SpecialFolder.CommonApplicationData
。對於機器特定的數據,您可能還需要以管理員身份運行該程序,否則您將不具有對該位置的寫入訪問權限。
我想說這取決於你想要存儲什麼類型的日期。如果是用戶特定的日期,那麼如果它不是用戶特定的數據,我建議由
Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData);
使用返回的路徑,也就是說,它的數據通過你的程序的所有用戶,然後將其存儲在一個文件夾中共享您的安裝路徑可能更合適。
我恭敬地不同意你的結束語;建議不要將機器特定的數據存儲在安裝路徑中。 Windows爲這些數據提供「通用應用程序數據」位置。安裝路徑(即「Program Files」文件夾)僅用於存儲*應用程序文件。 – BTownTKD
如果不同的用戶存儲不同的數據,那麼將其存儲在他們的用戶帳戶而不是程序文件中是有意義的。 –
取決於數據所代表的內容,它的使用環境是什麼,它有多大,使用頻率如何等等。提供關於你想要達到什麼樣的好答案的更多信息。 – Alex
我沒有搜索應用程序設置,因爲這是關於應用程序數據的更多信息,而不是設置。它有時可能是一個灰色地帶。對不起,重複。 – MrGibbage