2013-03-03 128 views
2

文件我開發WPF程序,我用這個代碼對象的List保存到一個文件:列表保存到磁盤上

var list = new ArrayList(); 
    list.Add("item1"); 
    list.Add("item2"); 

    // Serialize the list to a file 
    var serializer = new BinaryFormatter(); 
    using (var stream = File.OpenWrite("test.dat")) 
    { 
     serializer.Serialize(stream, list); 
    } 

而且我的問題是在哪裏保存在磁盤上的文件。我讀到我無法使用ProgramFiles文件夾,因爲有時只有管理員用戶可以保存到此文件夾的文件。

有任何通用文件夾,我可以用來保存文件?

+1

常見位置與應用程序本身位置相同。您可以添加子文件夾「數據」以防止最終用戶感到困惑或刪除文件。 – 2013-03-03 14:17:28

回答

4

我會將它保存到應用程序數據。你可以得到它的路徑使用

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) 
+0

我看到這個方法返回'C:\ Users \ Administrator \ AppData \ Roaming'。如果我希望這些數據對計算機上的每個用戶都可見? – MTA 2013-03-03 14:24:11

+0

這裏是完整的列表:http://msdn.microsoft.com/library/system.environment.specialfolder.aspx – user287107 2013-03-03 14:48:18

+0

@MTA如果你想讓所有的用戶使用CommonApplicationData,請參見http://msdn.microsoft.com/en -us/library/system.environment.specialfolder.aspx。通常在那裏爲您的應用程序/公司創建一個文件夾。 – kenny 2013-03-03 16:40:05

2

這個數據是你的程序或用戶生成的內部?如果數據是內部數據,則可能需要使用Application Data文件夾。如果它是用戶生成的,您應該默認爲我的文檔,但讓用戶決定將其保存到哪裏。

您可以撥打Environment.GetFolderPath()以獲取這些特殊文件夾的位置。

+0

謝謝! Application Data文件夾和文檔有什麼不同? – MTA 2013-03-03 14:21:55

+0

應用程序數據(類似於'C:\ Users \ username \ AppData')是程序可以存儲他們需要操作的數據的地方,相當於在舊版本中存儲程序文件。Documents是用戶的My Documents文件夾,他們保存他們的文件。 – Andy 2013-03-03 18:08:51