2013-11-20 78 views
0

我已經創建了一個C#應用程序,不用記住所有的調試都是使用管理員權限完成的,因爲我總是在Windows中使用它。已安裝的應用程序沒有任何地方的寫入權限

現在,我已經通過使用WiX創建.MSI安裝程序安裝了我的應用程序,該應用程序對appdata,C:\ tmp等沒有寫入權限。

我的應用程序需要在文件系統的某處寫入一些臨時文件,我如何在不需要管理員權限的情況下實現這一點?該應用程序不做任何應該要求管理員提升的內容。

+0

你寫的確切路徑是什麼?您只能寫入每個用戶的目錄。 – SLaks

+1

[This](http://msdn.microsoft.com/en-us/library/system.io.path.gettempfilename(v = vs.110).aspx),也許? – pbondoer

+0

@slaks%appdata%\ myApp(由具有權限的wix創建),c:\ temp,mydocs ... – chwi

回答

0

因爲我只需要一個臨時文件讀取和,我可以使用Windows API來獲取一個臨時文件爲我的應用程序中編寫

string tempFile = Path.GetTempFileName(); 

現在我能寫和讀的路徑tempFile隨意。注意到這個文件在退出時被刪除,並且每次調用時都會創建一個新文件到Path.GetTempFileName()

0

嘗試使用Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)。它應該始終可供您的應用程序訪問。

您可以嘗試使用System.IO.Path.GetTempPath()獲取臨時目錄。

如果這不起作用,您可以嘗試查找非系統分區並在其中創建隱藏文件夾。

+0

如上所述,我無法訪問:S – chwi

+0

您可以嘗試查找臨時文件夾或在其他分區上創建隱藏文件夾。 –

+0

這只是錯誤,我認爲,創建文件夾沒有用戶的知識。 – chwi

相關問題