我有一个文本文件。现在我已将其文件类型从.txt
更改为.abc
。我的VB.NET程序将文本加载到该文件的文本框中。但是,在更改文件类型后,NotePad和Word等其他应用程序可以打开并读取我的.abc
文件。
有没有办法只有我的应用程序才能打开/读取文件而没有其他应用程序能够这样做?我的意思是,假设我有一个PhotoShop文档.psd
文件,没有其他应用程序,而不是photoshop本身,可以打开它。如何让其他应用无法读取我的文件?
答案 0 :(得分:0)
无法阻止您打开任何文件而无法开发的应用。这些扩展只是为了帮助我们人类,也许还有一点让计算机知道你为扩展选择的默认应用程序。
就像你说的那样,许多应用程序都可以打开.txt
文件。您可以使用记事本,Firefox,VSCode和许多其他文件打开.txt
文件。
同样,许多应用都可以打开1> .psd
个文件。您可以使用Photoshop打开.psd
文件,也可以打开Notepad,Firefox和VSCode,也可以使用与上面相同的应用程序。
区别在于哪些应用可以读取并了解该文件。 为了使文件不被其他应用程序理解,您需要将其设置为无法识别的格式,因为您已经秘密计划了#34;。
就像上面提到的Visual Vincent一样,您可以通过某种方式加密文件,或者您可以拥有一个二进制文件,基本上只有您的应用知道才能理解。
由于你不拥有你希望文件被理解的应用程序,你必须接受它可以被任何可以打开文件的应用程序打开,或者你可以尝试加密应用程序外的文件,或者比如用密码压缩它,然后在你想使用它时解密或解压缩。
答案 1 :(得分:0)
首先,除非某个特定进程或服务仍处于打开状态,否则可以读取任何文件。即使是PhotoShop文件也可以被读取'通过NotePad - 试试吧!
所以,尝试我的第一个答案......
您可以尝试使用几种方法来阻止打开文件,例如,应用文件锁定。例如,SQL Server .mdf
文件被SQL Server服务锁定。这是因为文件保持打开状态;您的应用程序必须保持运行才能保持这些文件的打开状态。但从技术上讲,文件仍可以复制。
另一种方法是为文件设置隐藏属性。这会隐藏不太精明的用户的文件,但如果用户显示隐藏文件,则会显示该文件。
我的第二个回答:您只是说PhotoShop可以读取或写入自己的文件(不是真的,但我知道你在说什么),这是指文件的格式。
文件的格式必须由您自己决定。您必须确定如何存储从应用程序输出的数据。看起来您一直在尝试将应用程序数据写入文本文件。也许您应该尝试写入二进制文件。正如Visual Vincent在您的问题评论中所建议的那样,未加密的二进制文件仍然提供了一种更加量身定制的数据存储方法。
二进制文件写入原始二进制数据而不是人性化文本。例如,如果您向文件写入一个整数,它将显示为四个字节的字符串,而不是通常的123456789文本格式。
因此,您确实需要澄清要写入文件的数据,确定文件的集合结构(因为您还必须能够read it back in到您的应用程序)然后才能够到write the information。