如何自定义文件类型?

hxp930 2008-12-18 07:44:44
C#写了一个Winform程序,用Access和XML存的数据,不想别人直接查看数据(Access设的密码根本没用),想把.mdb的数据库文件换成自定义扩展名的文件类型且按自己的方式才能打开,请问大家可不可以这样做?可以的话如何实现?我是看到网上的很多共享软件都有自定义的文件格式。
...全文
528 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
afafaf_2008 2008-12-26
  • 打赏
  • 举报
回复
帮你顶!
hxp930 2008-12-25
  • 打赏
  • 举报
回复
有一个问题还是没想太明白,因为这是一个数据库文件,我程序里需要对这个数据库里的表做很多操作,我如果序列化的时候改变了文件的结构,如何能正常读写这个数据库文件?
Jinglecat 2008-12-19
  • 打赏
  • 举报
回复
你想怎么定义都可以,如加文件头,加标志位(针对2进制文件)

或者先存成xml格式,然后转为二进制,接着加密

或者存成txt格式比如CSV,tab分割等,然后转为二进制,接着加密

你得考虑,你准备如何解析回来
ycg_893 2008-12-19
  • 打赏
  • 举报
回复
楼主也可以从Access出发,Access的确很容易看到密码,好像有一办法可以对Access的加密效果更好,就是就算打开Access了,也无法打开表,具体不知道怎么做了.
wangping_li 2008-12-18
  • 打赏
  • 举报
回复
参考:
http://www.cnblogs.com/zhuweisky/archive/2008/08/25/234282.html
net5i 2008-12-18
  • 打赏
  • 举报
回复
搂主改名称是不行的,还是可以通过“打开方式”找到Access程序将其打开的。

最好的办法就是在程序中压缩mdb文件,并且是加密压缩
然后使用的时候,程序再解压缩到内存中,然后再打开就可以了。


有关.NET中压缩,解压缩可以使用开源的SharpZipLib组件,也是支持加密压缩的,搂主可以到官方下载。

但是这只是一把锁而已,楼主如果还不想让别人反编译你的程序看到压缩密码,那么你还可以再再加一把锁:发布时加密你的程序。
yijianxiangde100 2008-12-18
  • 打赏
  • 举报
回复
文件序列化的方法:
Console.WriteLine("Writing With Stream");

XmlSerializer serializer =
new XmlSerializer(typeof(OrderedItem));
OrderedItem i = new OrderedItem();
i.ItemName = "Widget";
i.Description = "Regular Widget";
i.Quantity = 10;
i.UnitPrice = (decimal)2.30;
i.Calculate();

// Create a FileStream to write with.
Stream writer = new FileStream(filename, FileMode.Create);
// Serialize the object, and close the TextWriter
serializer.Serialize(writer, i);
writer.Close();
flyjimi 2008-12-18
  • 打赏
  • 举报
回复
基本就是楼上这种思路。
在文件中加上自己的一些字节。
Sphonix 2008-12-18
  • 打赏
  • 举报
回复
文件序列化的问题,你可以考虑在序列化的时候前面加上一个自定义的字节,别人就打不开了,你在打开的时候从第二个字节开始读~

111,130

社区成员

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

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

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