我想写一点.NET脚本/工具,它至少与SecretSync或BoxCryptor大致相同,但不将加密密钥存储在公司的Web上服务器。双向文件夹与加密同步以保护我的Dropbox数据
首先它听起来很简单:你有两个文件夹 - “解密”文件夹和“加密” - 文件夹。在这两个文件夹中都有一个FileSystemWatcher,因此当文件发生更改时,该工具会得到通知。 如果文件在“已解密”文件夹中发生更改,它会对文件进行加密并将其写入“已加密”文件夹。如果文件在“加密”文件夹中发生变化,它将解密文件并将其写入“解密”文件夹。
到目前为止没有问题。
但是,如果用户直接从“解密”文件夹运行应用程序(例如KeePass),会发生什么情况?同步和加密过程现在会遇到问题,因为文件被锁定在应用程序中。 有没有我可以做,以避免这个问题处理,所以应用程序仍然可以运行旁边的同步和加密过程?
感谢您的帮助!
更新:我仍然无法找到这个问题的答案。使用FileSystemWatcher-class进行同步时,应用加密/解密很容易,但遇到文件锁定问题(因为流或应用程序阻止文件)。我也尝试过Microsoft Sync Framework。文件同步适用于它,但我不知道如何在运行中加密/解密文件。
也许有人有一点工作代码示例。
不知道这可能如何帮助我解决问题。对我来说,它看起来像卷影复制服务只进行备份,但文件仍然会被锁定。 – Alexander 2011-05-16 12:22:50
该服务允许您在仍在使用,打开等情况下复制文件;你将不得不阅读文档,不同的SDK是针对不同的操作系统,这里是一个很好的开始博客http://www.codeproject.com/KB/dotnet/makeshadowcopy.aspx – 2011-05-16 13:04:05