为WINDOWS设置USB大容量存储设备只读

时间:2013-12-30 17:47:04

标签: c#

请有人建议我如何实现这第一点

  1. 不得允许任何人通过Windows或控制台界面或任何其他方式删除或编辑存储驱动器中的文件或文件夹
  2. 仅从我的应用程序(c#app或任何)应该可以写/删除文件夹/文件功能必须支持
  3. 仅提供读取权限,因为常规功能默认为访问驱动器的所有人。
  4. 点。如果我正在设置写入设备的权限,如果用户在设置为写入权限时拔出,那么当他插回时它应该像readonly一样[以防任何解决方案,如设置为磁盘格式]

    谢谢, Anand L

2 个答案:

答案 0 :(得分:0)

  1. 您可以在文件上设置只读属性:

    File.SetAttributes("C:\\myFile.txt", FileAttributes.ReadOnly);
    

    但这不是一种安全机制(引用另一个answer),所以它不会真正实现你想要的。例如,我可以启动命令提示符并输入del /F file.txt,它会很乐意为我删除一个只读文件。

  2. 在您的应用程序中,您可以使用System.IO.File课程中的各种方法来完成您对此要求的所需(例如File.Delete

  3. 您需要确保在创建文件时设置只读属性。

答案 1 :(得分:0)

你永远不会完成所有这三个目标,尽管as described here

你做的有限

基本上,该选项可归结为具有admin admin priv并相应地设置注册表条目(或通过UI执行相同的操作)或第三方软件以使USB设备只读。

ADDED

可能应该提到一些闪存驱动器在设备上有一个“写保护”开关 - 这实际上是唯一值得信赖的写保护驱动器的方式,它当然是无用的安全功能,你渴望

ADDED

有一个音量锁定功能,从未使用它,method is DeviceIoControl需要使用FSCTL_LOCK_VOLUME锁定音量。不知道如何帮助你。