如何锁定文件,使其只能使用我的应用程序打开?

时间:2015-10-20 16:34:22

标签: c# windows file locking

我想锁定文件(例如,让我们使用图像)。所以我有这个形象" myImage.jpg"我希望它只能通过我的应用程序访问,例如我自己的图像可视化工具。问题是我不知道该怎么做。有人建议我改变它的扩展名(myImage.jpg到myImage.whatever)。但有人可以将其改回jpg,或点击"打开"按钮并选择任何图像可视化工具,它会工作。这样做的方式只能通过我的应用程序访问吗?有没有办法制作这样一个可以锁定图像的应用程序?是否可以手动完成?我只知道Visual Studio中的C#(我还不是它上面的exepert)...

5 个答案:

答案 0 :(得分:1)

您可以控制其他人在您使用时是否可以读取/写入文件

但是,一旦你的应用程序关闭,文件就位于那里,并且可以通过你将执行的相同读取逻辑传递,但是通过不同的程序传递。你可以翻转文件的所有字节,并希望“他们”不知道它。如果你真的想走得太远,你可以在运行时加密它并解密它。

但是,如果您不自行使用该文件,则无法阻止某人删除或重命名或移动您的文件。

答案 1 :(得分:0)

不,没有办法按照你要求的方式锁定文件。所有文件都包含一个字节结构,并且没有办法“锁定”其他应用程序读取或写入文件。

答案 2 :(得分:0)

如果需要,可以保持打开文件句柄 - FileStream's构造函数需要指定文件共享模式的重载,其中一种模式是“不共享”。

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

只要您保持该流打开,其他任何东西都无法访问该文件,无法读取或写入。

答案 3 :(得分:0)

您可以使用只有您的程序能够理解的格式保存文件,例如通过添加一些字节数。

答案 4 :(得分:0)

我想说一个引起我思考的方法。

  

使用加密密码压缩图像/文件。   用密码解压缩并使用该图像/文件。

谢谢,