2013-11-20 84 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

相关问题