关于文件关联的问题

shijies 2018-08-28 05:09:05
请问建立了文件关联的文件上记录的什么呢?某个文件上记录的是一些对象的属性?使用被关联的程序读这个文件上记录的这些对象的属性,然后将某个程序给恢复出来?
...全文
272 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
任何一个进程 dump 二进制内容到文件里,很容易。

关键是想变回程序,应该先说明你自己的编程设计知识背景,才能知道你能看懂什么适合什么设计。不可能有空洞的答案。

引用 16 楼 shijies 的回复:
应用程序从文件里读入的数据,如何写入窗体,如何通过代码打开窗体,设置窗体,这些代码是没有经过编译的。
  • 打赏
  • 举报
回复
引用 17 楼 xuzuning 的回复:
你究竟要做什么?
你说的文件中,都保存了什么?


lz 说的,其实什么也不存在。他就是想要一个万能的概念,任意的程序都能变到一个静态文件里,然后又直接变回窗口,而不需要用任何自己开发的程序来重新读取和解析文件。
  • 打赏
  • 举报
回复
从 #2 楼开始,反反复复其实各路好心人都已经回答了,而你反反复复地就是纠结你自己幻想的那些名词儿。

根据文件的后缀,从注册表里可以查到关联到的应用程序(例如 word.exe 程序)的位置,于是 windows 就会根据要打开的文件后缀而启动相关的 exe 程序并且把要打开的文件的路径作为其参数。也就是说当一个人点击打开一个”张三简历.docx"文件时,windows系统可能就会用
c://"Program Files"//路径/Word.exe 张三简历.docx
的命令来执行起来这个 Word.exe 进程。

跟你幻想的什么“张三简历进程被序列化到文件里”完全是两码事情。
xuzuning 2018-09-02
  • 打赏
  • 举报
回复
请你用普通人能理解的语言描述问题,而不是用神一般的语言
xuzuning 2018-09-02
  • 打赏
  • 举报
回复
你究竟要做什么?
你说的文件中,都保存了什么?
shijies 2018-09-02
  • 打赏
  • 举报
回复
应用程序从文件里读入的数据,如何写入窗体,如何通过代码打开窗体,设置窗体,这些代码是没有经过编译的。
shijies 2018-09-01
  • 打赏
  • 举报
回复
在程序运行过程中,可能会产生一些对象,请问如何把一个应用程序中的所以对象的实例保存在文件中 ?
shijies 2018-09-01
  • 打赏
  • 举报
回复
如果在一个应用程序里打开一个窗体,对这个窗体进行一些操作,然后保存成一个文件,读文件的时候,要打开相应的窗体,然后写一些属性值。窗体是不能写到文件里的,没有编译的过程。对文件关联后的读写程序,我还是没搞明白。
xuzuning 2018-09-01
  • 打赏
  • 举报
回复
确定用什么方式读写文件?要依据文件的具体内容
除 txt 文件外,所有文件都是有格式文件,需要按写入时的格式读取
shijies 2018-09-01
  • 打赏
  • 举报
回复
如果文件关联不包含这个意思,那就属于文件读写的问题,需要在应用程序里写代码,确定用什么方式读写文件。这个我不清楚。
xuzuning 2018-09-01
  • 打赏
  • 举报
回复
不对,文件关联 是通过文件的后缀,与打开此类的应用程序建立的关系,而与文件实际内容无关
就如你知道的那样,将 word 文件的后缀由 doc 改成 txt 后,就会出现丢失信息的情况那样
shijies 2018-09-01
  • 打赏
  • 举报
回复
我是这样理解的,文件关联技术就是使文件记录的对象的属性与使用关联程序建立的对象的属性相同。
Blithe239 2018-09-01
  • 打赏
  • 举报
回复
引用 5 楼 shijies 的回复:
如果把一些文件的后缀名给改成txt,也可以显示出来,例如word文件,但是会丢失一些信息,例如字体。关联程序打开关联文件不丢信息,怎样保存关联文件呢?怎样把关联程序的属性都保存起来?

txt格式只会保存文本信息,里面不包含字体等信息,这些信息是由notepad这个程序记录的。你可以做一个实验,先打开一个txt文档,看一下字体是什么样子的,然后打开另一个txt文档,改变它的字体,然后再打开第一个文档,你会发现字体变了,但是你根本没有改变第一个txt文档的数据。所以就不存在word打开txt文档会丢失字体的问题,因为TXT文档根本就不存储这些信息。
吉普赛的歌 2018-08-31
  • 打赏
  • 举报
回复
引用 6 楼 shijies 的回复:
怎样保存关联文件呢?怎样读取关联文件呢?

我的理解是关联程序保存的文件,是记录了关联程序的某个状态,如:生成了哪些对象,拥有哪些属性。我不知道应该使用那个方法保存这些内存中的信息,用那个方法读取这些内存中的信息。

在 #2 都已经跟你说了读注册表啊。
shijies 2018-08-31
  • 打赏
  • 举报
回复
是序列化与反向序列化?
shijies 2018-08-31
  • 打赏
  • 举报
回复
怎样保存关联文件呢?怎样读取关联文件呢? 我的理解是关联程序保存的文件,是记录了关联程序的某个状态,如:生成了哪些对象,拥有哪些属性。我不知道应该使用那个方法保存这些内存中的信息,用那个方法读取这些内存中的信息。
shijies 2018-08-31
  • 打赏
  • 举报
回复
如果把一些文件的后缀名给改成txt,也可以显示出来,例如word文件,但是会丢失一些信息,例如字体。关联程序打开关联文件不丢信息,怎样保存关联文件呢?怎样把关联程序的属性都保存起来?
threenewbee 2018-08-30
  • 打赏
  • 举报
回复
在注册表的class_root下定义的,并不保存什么对象,只是关联了打开程序的路径。
你程序的Main(string[] args)这个args就可以得到关联需要打开的文件名
Blithe239 2018-08-30
  • 打赏
  • 举报
回复
文件中不会记录关联程序的信息的,你可以想想看,例如像txt这种格式的文件,可以由多种程序打开,每种程序的安装路径也不一样,如果文件关联的信息是保存在文件中的,那换了一台电脑不就可能打不开了吗。文件打开的时候,会根据扩展名到注册表里查找关联了这种格式的程序,一般会有一个默认的程序选项,记录了用于打开这种格式的程序的位置,然后操作系统会启动这个程序,并将文件的路径作为命令参数传递,应用程序在接受到这个参数后,会调用相关的操作打开这个文件。
吉普赛的歌 2018-08-29
  • 打赏
  • 举报
回复
加载更多回复(1)

110,549

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧