2015-04-30 49 views
-1

我想創建一個文件。就像那樣簡單,我不能僅僅爲它提供創建文件的特定路徑,因爲這個項目最終將被部署,並且該路徑不再是相對的(例如C:\ Users \ ledie .... )。具體的文件創建

這是我目前的項目目錄 C:\用戶\萊帝亞\桌面\ brolv2 \ brol \報告

我在我的項目目錄中的文件名爲報告,我想在創建文本文件和寫字符串,我的主要問題是指定它寫入特定的文件夾,而不給它確切的路徑。

+0

你能提供更多的細節嗎?是否就像詢問用戶想要放置文件的路徑一樣簡單?你可以使用用戶的臨時目錄(這是C#中的一個特殊變量)?這些選項是否有效? – JasCav

+0

將文件夾添加到您的項目(如果它不是),請轉到該文件夾​​的屬性。 「輸出到目錄」 - >總是編譯。當你創建這些文件時,將它們引用爲'Reports/filename.txt' –

+0

使用MapPath功能 – Hogan

回答

0

如果您在例如C:\App 部署你的ASP.NET應用程序和文件是C:\App\Data\data.html

得到絕對路徑使用這樣的:

String path = HttpContext.Current.Server.MapPath("~/Data/data.html"); 
0

我認爲你需要在這裏使用specialfolders 。例如:

string relPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); 
string savePath = Path.Combine(relPath, "Reports"); 

最終的結果是應用程序將會把文件放到一個稱爲當前用戶的應用程序數據文件夾Reports文件夾。例如C:\ Users \ ledie \ AppData \ Roaming \ Reports改進的代碼應驗證文件夾的存在並在必要時創建它。

查看此MSDN page瞭解更多可以以這種方式使用的路徑。

+0

這個功能是否支持mac?我剛剛用我的windows 7測試過它,但是使用我的程序的人實際上使用Mac,任何線索,如果它是相同的東西? – ledia

+0

PS,這是目前我從提供的最好的解決方案 – ledia

相關問題