簡體   English   中英

如何通過只能使用我的應用程序打開文件來鎖定文件?

[英]How can i lock a file, by making that it can only open using my application?

我想鎖定一個文件(例如,使用圖像)。 因此,我有此圖像“ myImage.jpg”,我希望只能通過使用我的應用程序(例如我自己的圖像可視化器)來訪問它。 問題是我不知道該怎么做。 有人建議我更改其擴展名(將myImage.jpg更改為myImage.whatever)。 但是有人可以將其更改回jpg,或單擊“打開方式”按鈕並選擇任何圖像可視化工具,它將起作用。 那是一種只能通過我的應用程序訪問的方法嗎? 有沒有辦法制作這樣一種可以鎖定圖像的應用程序? 並且可以手動進行嗎? 我只知道Visual Studio中的C#(而且還不是它的專家),所以...

您可以控制其他人在使用文件是否可以讀取/寫入文件。

但是,一旦您的應用程序關閉,該文件就位於該文件中,並且可以通過您將執行的相同讀取邏輯進行傳遞,但可以通過另一個程序進行傳遞。 您可以翻轉文件的所有字節,並希望“它們”不要弄清楚。 如果您真的想走得更遠,可以在運行時對其進行加密和解密。

但是,當您自己不使用文件時,您不能阻止某人刪除,重命名或移動您的文件。

不,無法按照您要求的方式鎖定文件。 所有文件都由字節結構組成,因此無法“鎖定”其他應用程序以防止讀取或寫入文件。

如果需要,您可以按住打開文件的句柄FileStream's構造函數采用重載來指定文件共享模式,而其中一種模式是“不共享”。

FileStream stream = new FileStream( 
    sourcePath, 
    FileMode.Open, 
    FileAccess.ReadWrite, 
    FileShare.None
);

只要保持該流打開,其他任何都將無法訪問文件,讀取或寫入文件。

您可以將文件保存為程序只能理解的格式,例如,通過在一定數量的字節前添加前綴。

我想說一種激發我靈感的方法。

使用加密的密碼壓縮圖像/文件。 使用密碼解壓縮並使用該圖像/文件。

謝謝,

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM