C# 文件夹加密

来源:百度知道 编辑:UC知道 时间:2024/06/01 21:18:52
.net环境下 用c#写winform程序,复制文件夹及其子文件夹和文件到另外一个地方如“c:\a”,如何使c:\a中的文件不能被访问和修改。我想的方法使,复制完成后,给文件夹“a”加密,使用户看不到a下面的所有内容。但不知如何解决,请大家帮忙,急用!谢谢!!!(我分数有限,望大家见谅!)
我的文件夹下面是图片和excel文件,不是简单的文件。我已经复制完成了,不想重新做。只想加密文件夹。
自定义扩展名不可以。用户改了扩展名,一样可以看到内容。
隐藏也不行。我做的系统是单机版的,用户要把文件拷到另一个机器上,已完成数据的汇总。
我已经想到了方法。把复制后的文件,再压缩了,在压缩的时候加密。只是,总是出现windows自带的压缩文件对话框。我现在想让对话框不出现。请大家帮忙。
压缩文件的代码是:
string strtxtPath = "C:\\freezip\\free.txt";
string strzipPath = "C:\\freezip\\free.zip";
System.Diagnostics.Process Process1 = new System.Diagnostics.Process();
Process1.StartInfo.FileName = "Winrar.exe";
Process1.StartInfo.CreateNoWindow = true;
Process1.StartInfo.Arguments = " a -p123456 " + strzipPath + " " + strtxtPath;

windows自带的压缩文件对话框的方法:加上一句:process1.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;

仅仅看不到内容,可以让文件夹隐藏.如果加密的话,我估计可能性很小.任何加密文件,都需要一个系统进程去管理维护,一个自动运行的进程,或者一个服务.也就是说你这个程序要比系统里其他程序运行的更早...想想很难实现.
windows里面也有个磁盘加密功能.比如一个计算机有多个用户,他们的"我的文档"文件夹不能互访.也就是说这种加密使用户隔离级别的,和你当前运行的账户有关.一旦你账户登录,还是可以访问.看得出来,lz想在当前用户下加密...那么前述问题就很难解决.

关于private string Encrypt(string str):总有一些人,不管人家什么问题就复制一些文字给别人,复制不反对,但是得准确,有助.看清楚,人家是文件夹加密,你这个是字符串加"密"吧??你这个真够密的,ascii加一位...

用c#写winform程序
给你提供两个方法:
加密:
private string Encrypt(string s)
{
Encoding ascii = Encoding.ASCII;
string EncryptString = "";
//string EncryptString;
//EncryptString = "";
for (int i = 0; i < s.Length; i++)
{
int j;
byte[] b = new byte[1];
j = Convert.ToInt32(ascii.GetBytes(s[i].ToString())[0]);
j = j + 1;
b[0] = Convert.ToByte(j);