如何将文件副本作为Readonly?

时间:2011-08-31 03:57:01

标签: c#

我正在Windows窗体应用程序中以编程方式将日期导出到Excel电子表格。当我保存Excel文件时,我将该文件标记为只读。如果用户创建了Excel文件的副本,那么他们可以修改它,但我想限制克隆(不允许重复副本),如果还有文件副本,我想让它也只读。

我不想使用任何密码 这可能吗?

提前致谢

3 个答案:

答案 0 :(得分:1)

这是不可能的。

只读只适用于“意外”覆盖;它不是一个安全系统。

答案 1 :(得分:0)

只有在操作系统中指定了“不允许复制”的某些权限时,才能执行您想要执行的操作。但是,据我所知,没有操作系统(至少Windows,因为我认为这是主题是C#和Excel文件,但我肯定不是它独有的)将此作为特定权限情况下。

无论如何,如果有这个选项且数据设置为'readonly',有人可以将文件读入内存,然后输出包含该特定数据的新文件。关于如何防止复制是一种无用的努力( DRM )还有更多的哲学观点,但我只是节省一些时间并说明即使不是不可能也很难。

但是,如果您愿意,可以加密文件,使其无法直接在Excel中使用。然后,创建一种包装器,读取加密文件,解密,然后将其传递给Excel。为了防止有人复制文件并对其进行修改,您必须将解密数据直接传递给Excel,但我不确定这是否可行,因为我没有太多使用Excel的经验,更不用说制作应用程序了与它一起工作。

如果将数据传递给Excel将无法正常工作,您可以尝试将解密后的文件放在不同的目录中以将其丢弃,但我怀疑这会欺骗任何有精明或决心的人。

如果有问题的文件应该直接用于Excel(您正在为某人用Excel打开生成Excel文件),那么我会说阻止他们修改文件是不可能的。

答案 2 :(得分:0)

如果客户端有什么东西,如果客户端可以查看它,那么你就无法阻止他制作副本。