【问题标题】:.NET Windows API Check if folder accessed.NET Windows API 检查文件夹是否被访问
【发布时间】:2015-10-11 19:58:06
【问题描述】:

我正在寻找一个功能,它允许我在访问文件夹之前放置一个对话框窗口(带密码查询)。有这样的功能吗?此外,如果此保护在任何程序之前存在,这会很棒,甚至允许 Windows Explorer/cmd.exe 访问这些文件。有可能吗?

我没有使用 IOContainer、passwd 之类的东西。受保护的 ZIP 或任何其他太慢的东西,因为我猜一个文件中有 20GB 有点矫枉过正,解密该文件需要很长时间。是否有适用于 C# 的 VFS 解决方案,它支持密码保护并且可以用作磁盘上的普通文件系统或文件夹?

谢谢!

【问题讨论】:

  • windows 中没有任何内置功能可供您使用。但是,您可以选择编写一个拦截文件 i/o 访问的驱动程序,然后您可以显示您的密码保护..
  • @MikeDinescu:你知道有哪些网站可以让我了解这些困难的事情吗?还有,谢谢!

标签: c# winapi encryption vfs virtualfilesystem


【解决方案1】:

有两种选择。更简单的一种是从文件映射一个虚拟文件系统。我们的产品SolFS (OS edition) 完全符合您在问题的第二部分中提出的要求 - 它提供了一个具有可选加密的容器,该容器作为虚拟驱动器公开,因此对内容的访问是透明的。这种系统中的解密是分页完成的,所以20GB大的文件不会像你担心的那样被整个解密。

另一种选择是使用文件系统过滤驱动程序,它将拦截目录打开请求,并要求用户输入密码。这种方法是可行的(我们甚至有一个产品,称为 CallbackFilter),但它有两个缺点:首先,删除驱动程序并非不可能,从而使数据不受保护。第二个问题是,如果您在回调中要求用户输入密码,而操作系统正在等待访问目录,您可能会在用户思考时陷入死锁或超时。

考虑到这两个限制,SolFS 之类的方法是首选和推荐的方法。

PS:我们也有免费的非商业许可证。

【讨论】:

    猜你喜欢
    • 2016-03-14
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多