Vb.net 仅使用自定义应用程序打开自定义文件

Vb.net 仅使用自定义应用程序打开自定义文件,vb.net,file,Vb.net,File,我正在开发vb.net应用程序,我想在其中创建和读取一个文件。文件将具有ex..abcb的特定扩展名。我希望我的应用程序的工作方式是: 可以创建扩展名为.xiao的文件 应仅读取.abu文件(以及应用程序创建的文件,仅当更改的扩展名不起作用时) .abcd文件在任何其他应用程序(例如word、记事本、任何图像查看器等)中打开时应显示一些垃圾数据 现在,我的应用程序执行1,2(部分)步骤,即创建一个文件并加载数据,它只读取.abcd文件(而不是修改后的文件) 但创建的文件也可以被其他软件读取。我尝

我正在开发vb.net应用程序,我想在其中创建和读取一个文件。文件将具有ex..abcb的特定扩展名。我希望我的应用程序的工作方式是:

  • 可以创建扩展名为.xiao的文件

  • 应仅读取.abu文件(以及应用程序创建的文件,仅当更改的扩展名不起作用时)

  • .abcd文件在任何其他应用程序(例如word、记事本、任何图像查看器等)中打开时应显示一些垃圾数据

  • 现在,我的应用程序执行1,2(部分)步骤,即创建一个文件并加载数据,它只读取.abcd文件(而不是修改后的文件)

    但创建的文件也可以被其他软件读取。我尝试了很多次搜索,但没有找到任何东西,也不知道从哪里开始


    感谢您的帮助

    如果您不希望其他程序能够读取您文件的内容,那么您必须以某种方式对其进行屏蔽,这通常是通过加密完成的

    假设您不太担心密钥被泄露,实现这一点的最简单方法是生成一个类似的密钥,并使用该密钥加密发送到文件的所有内容以及从中读取的所有内容

    至于制作您自己的文件扩展名,您可以在制作文件时根据需要制作文件扩展名:

    Dim fs As FileStream = File.Create("/path/to/file/filename" & ".abcd")
    

    扩展名所做的唯一一件事是告诉操作系统在默认情况下打开文件时要使用什么程序,该文件可能是记事本,因为您正在制作自己的扩展名

    该文件包含相同的内容,无论是由您的应用程序还是其他应用程序读取。Windows不会根据哪个应用程序打开文件来更改内容。它不是您的文件,它属于用户。如果您不希望其他应用程序读取该文件,请使用二进制序列化程序(除非它主要是文本)或对其进行加密。除了Proputix已经提出的方法外,您还可以压缩该文件,然后更改该文件的前5个字节(将其设置为0)。该模式是固定的,因此在打开文件时只需将其更改回来。如果修改了标题,压缩软件将无法识别格式,也无法打开它。非常感谢Puropoix和Jimi,我想我将使用加密。到目前为止,我已经对应用程序中的文件进行了加密和解密。我唯一要做的就是当双击文件时,它应该启动应用程序中的不同部分。所以我的应用程序默认页面是表单1的第一个选项卡,用于创建项目和保存数据,第二个选项卡用于查看数据。所以,当双击文件时,应该转到第二个选项卡以显示数据。我不知道怎样才能做到这一点。非常感谢杜姆87er。我要用加密技术。我已经为注册表项添加了一行,用默认程序打开文件,这是我的应用程序。我唯一要做的就是当双击文件时,它应该启动应用程序中的不同部分。所以我的应用程序默认页面是表单1的第一个选项卡,用于创建项目和保存数据,第二个选项卡用于查看数据。所以,当双击文件时,应该转到第二个选项卡以显示数据。这是一个相当复杂的问题,也是一个单独的主题,所以我在这里不太详细。但是,当操作系统使用您的程序打开该文件时,它将在main方法中提供该文件的路径作为参数。从他们那里,你必须为文件添加一个检查,如果你得到了I doom87er,该怎么办,非常感谢你的帮助!我想我在这里找到了答案: