推荐的写入隐藏/只读文件C#的方法

本文关键字:只读 文件 方法 隐藏 | 更新日期: 2023-09-27 18:25:10

我正在尝试写入一个具有以下属性的文件:Hidden和ReadOnly。我的进程应该能够写入,但其他进程具有只读访问权限。

我遵循的程序是:

  1. 检查文件是否存在
  2. 删除文件上的现有属性,即隐藏属性和只读属性
  3. 完成对文件的写入
  4. 将属性(隐藏和只读)应用回文件

我知道这不是使用文件属性并写入隐藏文件的推荐方式。有更好的方法来完成我的任务吗?

提前谢谢。

推荐的写入隐藏/只读文件C#的方法

是的,让您的应用程序模拟一个特殊帐户。授予该帐户对该文件的文件写入权限,并授予所有其他帐户的读取权限。

在另一个用户的上下文中运行最简单的方法是按下shift并右键单击exe文件,选择"以不同用户身份运行"。

使用windows服务,您可以从服务属性更改正在运行的帐户。Windows计划任务也是如此。

要想在"过程中"更改运行帐户,你需要做更多的工作,找一篇关于这个主题的好文章,比如http://www.codeproject.com/Articles/4051/Windows-Impersonation-using-C。

正如@Albin所指出的,解决访问问题的正确方法是使用文件权限,而不是属性。

如果文件被隐藏是因为你不希望用户能够查看其内容,我建议使用简单(相对轻量级)的加密机制将是比隐藏属性更好的解决方案。

请注意,具有足够权限的用户可以关闭隐藏属性和只读属性。通常,任何人都可以在资源管理器中打开"显示隐藏的文件和文件夹"功能。

不需要删除隐藏的属性。不过,据我所知,没有其他只读解决方案。