我想写一个小的.NET脚本/工具,与SecretSync或BoxCryptor至少大致相同,但不会将加密密钥存储在公司的Web服务器上。
起初听起来非常简单:您有两个文件夹-一个“已解密”文件夹和一个“已加密”文件夹。这两个文件夹都有一个FileSystemWatcher,因此当文件更改时,工具会收到通知。如果“已解密”文件夹中的文件更改,则它会加密该文件并将其写入“已加密”文件夹。如果“已加密”文件夹中的文件更改,则它会对文件进行解密并将其写入“已解密”文件夹。
到目前为止没有问题。
但是,如果用户直接从“已解密”文件夹运行应用程序(例如KeePass),那么同步和加密过程将遇到问题,因为该应用程序锁定了文件。是否有什么方法可以避免这个问题,使应用程序仍然可以在同步和加密过程旁边运行?
感谢任何帮助! 更新:我仍然找不到这个问题的答案。当使用FileSystemWatcher类进行同步时,应用加密/解密很容易,但由于流或应用程序阻止文件,您会遇到文件锁定问题。我还尝试了Microsoft Sync Framework。它可以进行文件同步,但我不知道如何在运行时加密/解密文件。
也许有人有一些可行的代码示例。
起初听起来非常简单:您有两个文件夹-一个“已解密”文件夹和一个“已加密”文件夹。这两个文件夹都有一个FileSystemWatcher,因此当文件更改时,工具会收到通知。如果“已解密”文件夹中的文件更改,则它会加密该文件并将其写入“已加密”文件夹。如果“已加密”文件夹中的文件更改,则它会对文件进行解密并将其写入“已解密”文件夹。
到目前为止没有问题。
但是,如果用户直接从“已解密”文件夹运行应用程序(例如KeePass),那么同步和加密过程将遇到问题,因为该应用程序锁定了文件。是否有什么方法可以避免这个问题,使应用程序仍然可以在同步和加密过程旁边运行?
感谢任何帮助! 更新:我仍然找不到这个问题的答案。当使用FileSystemWatcher类进行同步时,应用加密/解密很容易,但由于流或应用程序阻止文件,您会遇到文件锁定问题。我还尝试了Microsoft Sync Framework。它可以进行文件同步,但我不知道如何在运行时加密/解密文件。
也许有人有一些可行的代码示例。