C:保存具有唯一扩展名的指定文件

C: Saving specified files with unique extensions

其实我对这个很好奇

假设,假设我想制作一个记事本程序,以便用户可以制作文档。用户可以无限制地输入任何内容 s/he。

为了隐私,只有那个程序打开它,我可以为这个程序使用特定的(未设计的)扩展吗?例如。将文件另存为:"test.abcz"。如果可以,其他默认程序(word,记事本)是否可以打开并看到内容?

我正在考虑设计一个基于记事本的应用程序。听起来很简单,我认为它可以帮助我学习一些C基础知识。

谢谢! :)

从技术意义上讲,是的。

比如连.exe文件都可以读取(不是说有道理):

1. Rename to .txt from .exe
2. Open in notepad.exe

实际上,数据的隐私是有保障的,除非它是明显的格式(纯文本)

扩展是一种向系统和实际程序而非最终用户识别程序的方法。

扩展与阅读内容的能力无关。

它们只是告诉操作系统文件应该如何访问,或者规定是什么(不是real) 文件的格式。

您可以通过将文本文档重命名为 something.mp3 并在记事本中查看内容来自行测试。

如果内容可以被程序理解 - 程序可以打开它。所以文本文件可以被许多不同的编辑器查看,但它们不能 "understand" .mp3 文件(嗯,通常)。媒体文件可以使用我的媒体播放器,但不能由编辑器使用,等等...

您可能会考虑在序列化数据(保存文件)时加密内容,因此其他程序无法打开它(至少不容易打开)。

使文档内容无法被其他软件读取的唯一方法是对其应用某种转换(加密),这种转换只能由您的软件或使用相同加密的等效软件解码算法只要你有一个"key".

文件扩展名只是对文件管理器的一个提示,因此它可以打开与之关联的软件,但是手动选择软件或尝试直接在应用程序中打开文件都不会停止。

如果想稍微训练一下,可以尝试实现一个用ROT13算法保存文件的记事本