如何创建可以被任何用户访问的文件?

问题描述:

我的软件需要在文件系统上生成文件,该文件可以被我的程序的任何其他实例读取,而不管它运行在哪个用户帐户下。我遇到的问题是,如果文件是在管理员帐户下创建的,那么当尝试在不同帐户下读取文件内容时,我会遇到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; 
} 

感谢

如果要访问更改为您的文件中的代码,你必须使用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

调用Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)以获取该计算机上所有用户/帐户都可访问(读/写等)的应用程序特定路径。

+0

这不是什么我问。只要写入应用程序具有权限并且可以在任何地方写入,就可以编写这些文件。 –

+0

我会删除downvote,因为我应该更清楚。对不起,这一天真是太棒了。 –

+0

好 - 没问题:-)每个人都有这样的日子有时 – Yahia