2011-11-18 69 views
0

我的軟件需要在文件系統上生成文件,該文件可以被我的程序的任何其他實例讀取,而不管它運行在哪個用戶帳戶下。我遇到的問題是,如果文件是在管理員帳戶下創建的,那麼當嘗試在不同帳戶下讀取文件內容時,我會遇到UnauthorizedAccessException。下面是我使用創建文件如何創建可以被任何用戶訪問的文件?

using (var fileStream = File.Create(path)) 
using (var streamWriter = new StreamWriter(fileStream)) 
{ 
    streamWriter.Write(/*some data*/); 
} 

,並從文件中讀取

using (var fileStream = new FileStream(fileName, FileMode.Open)) 
using (var streamReader = new StreamReader(fileStream)) 
{ 
    var idLine = streamReader.ReadLine(); 
    if (idLine != null) fileContents = idLine; 
} 

感謝

回答

2

如果要訪問更改爲您的文件中的代碼,你必須使用AccessControl:http://msdn.microsoft.com/en-us/library/9c13ttb3.aspx

+0

你碰巧知道我的閱讀方法需要什麼樣的訪問控制權限?如果我給予「每個人」讀取權限但是成功,如果我給予「每個人」完全控制權,這似乎失敗了,這並不理想。 –

+0

如果你看看這篇文章,你可以給讀取權限,其中包括一些其他的讀權限:http://msdn.microsoft.com/en-us/library/system.security.accesscontrol.filesystemrights.aspx – Francis

0

調用Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)以獲取該計算機上所有用戶/帳戶都可訪問(讀/寫等)的應用程序特定路徑。

+0

這不是什麼我問。只要寫入應用程序具有權限並且可以在任何地方寫入,就可以編寫這些文件。 –

+0

我會刪除downvote,因爲我應該更清楚。對不起,這一天真是太棒了。 –

+0

好 - 沒問題:-)每個人都有這樣的日子有時 – Yahia

相關問題