繁体   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