推荐的方法来写入隐藏/只读文件C#
-
27-10-2019 - |
题
我正在尝试写入具有以下属性的文件-隐藏和只读。我的进程应该能够写入它,但是其他进程具有ReadOnly Access。
我要遵循的过程是:
- 检查文件是否存在
- 删除文件上的现有属性,即隐藏和只读
- 完成对文件的写入
- 将属性(隐藏和只读)应用回文件
我知道这不是使用“文件属性”并写入隐藏文件的推荐方法。有更好的方法来完成我的任务吗?
谢谢。
解决方案
是的,使您的应用程序模拟一个特殊帐户。授予该帐户对该文件的文件写入权限,并读取所有其他帐户的访问权限。
在另一个用户的上下文中运行的最简单方法是按shift键并右键单击exe文件,选择“以其他用户身份运行”。
使用Windows服务,可以从服务属性更改运行帐户。Windows计划任务也是如此。
要在过程中间更改运行帐户,您需要做更多的工作,找到有关该主题的出色文章,例如 http://www.codeproject.com/Articles/4051/Windows-Impersonation-using-C 。
其他提示
如@Albin所述,解决访问问题的正确方法是使用文件权限,而不是属性。
如果由于您不希望用户查看其内容而将文件隐藏,我建议采用简单(相对轻量级)的加密机制比隐藏属性更好。
请注意,具有足够特权的用户可以关闭隐藏属性和只读属性。通常,任何人都可以在资源管理器中打开“显示隐藏的文件和文件夹”功能。
无需删除隐藏属性。不过,我知道只读解决方案没有其他解决方案。
不隶属于 StackOverflow