2015-10-11 27 views
0

我正在尋找一個函數,該函數允許我在訪問該文件夾之前放置一個對話框窗口(使用密碼查詢)。有這樣的功能嗎?此外,如果在任何程序之前存在此保護,即使Windows資源管理器/ cmd.exe被允許訪問這些文件,此也將是。這有可能嗎?.NET Windows API檢查是否訪問文件夾

我沒有使用類似IOContainer,passwd的東西。受保護的ZIP或任何其他太慢的東西,因爲我認爲一個文件中的20GB有點矯枉過正,需要很長時間才能解密該文件。是否有可用於C#的VFS解決方案,該解決方案支持密碼保護並可用作磁盤上的普通文件系統或文件夾?

謝謝!

+0

在你可以使用的窗口中沒有任何內置的。但是,您可以選擇編寫一個攔截文件I/O訪問的驅動程序,然後您可以顯示您的密碼保護。 –

+0

@MikeDinescu:您知道有哪些網站將我介紹給這些困難的事情嗎?另外,謝謝! – Felipe

+0

[文件系統過濾器驅動程序簡介](https://msdn.microsoft.com/en-us/library/windows/hardware/ff548202.aspx)。或者,一個[Shell命名空間擴展](https://msdn.microsoft.com/en-us/library/windows/desktop/cc144095.aspx)。 – IInspectable

回答

1

存在兩種選擇。最簡單的方法是從文件映射虛擬文件系統。我們的產品SolFS (OS edition)完全符合您在問題的第二部分提出的要求 - 它提供了一個帶有可選加密的容器,該容器作爲虛擬驅動器公開,以便訪問內容是透明的。在這樣的系統中解密是以頁面的方式完成的,所以20GB的大文件將不會被解密。

另一種選擇是使用文件系統過濾器驅動程序,它將攔截打開目錄的請求,並要求用戶輸入密碼。這種方法是可能的(我們甚至有一個稱爲CallbackFilter的產品),但是它有兩個缺點:首先,刪除驅動程序並不是不可能的,數據不受保護。第二個問題是,如果您在回調中要求用戶輸入密碼,而操作系統正在等待訪問該目錄,則可能會在用戶正在思考時導致死鎖或超時。

考慮到這兩個限制,SolFS是首選和推薦的方法。 PS:我們也有免費的非商業許可證。

相關問題