解决方案 »
- C#Generator方法
- winform 网络版程序,如何限制用户数
- 高手来,高分伺候,高难度挑战!!在线等!!
- 关于远程调用对象的问题!请做过这方面的程序的人进来看看,怎么实现这个功能
- 在新建一个项目时,出现‘库没有注册的错误’,这是怎么回事?
- 如何更改winform的datagrid的列名?
- 请教一个多线程的问题?(在线)
- 各位C#中ESC的ASCII是多少,我怎样在文本框的KeyPress中捕捉到
- winform读取串口磅秤重量
- 又有两个基本问题请教。谢谢。
- asp.net c# 汉字插入oracle数据表出现 列在此处不允许(高分求解,高手请进)
- 如何写">\r\n \f\t\v带空格的字串\r\n \f\t\v<"这类字串的正则?
[+ source [/A | /B] [+ ...]] [destination [/A | /B]] source 指定要复制的文件。
/A 表示一个 ASCII 文本文件。
/B 表示一个二进位文件。
/D 允许解密要创建的目标文件
destination 为新文件指定目录和/或文件名。
/V 验证新文件写入是否正确。
/N 复制带有非 8dot3 名称的文件时,
尽可能使用短文件名。
/Y 不使用确认是否要改写现有目标文件
的提示。
/-Y 使用确认是否要改写现有目标文件
的提示。
/Z 用可重新启动模式复制已联网的文件。命令行开关 /Y 可以在 COPYCMD 环境变量中预先设定。
这可能会被命令行上的 /-Y 替代。除非 COPY
命令是在一个批文件脚本中执行的,默认值应为
在改写时进行提示。
要附加文件,请为目标指定一个文件,为源指定
数个文件(用通配符或 file1+file2+file3 格式)。
前面已经说过,不能直接通过进程启动copy命令,这种方法不符合要求。
p.starinfo.fileName="C:\\windows\copy.com";
p.parameters="\d";p.start();
我来解释一下 /d 的作用,如果一个文件(NTFS格式),设置了它的加密属性(右键选中文件-->属性-->General属性页上点击Advanced按钮 -->选中 "Encrypt contents to secure data"),这个时候如果使用copy命令(不带参数)把该文件拷贝到本地硬盘上另一个地方(NTFS格式),那么拷贝的结果也是一个加密文件,若拷贝到非NTFS格式的盘上或者拷贝到网络的共享目录中,则会发生拷贝异常,说是不能加密该文件。这种情况下,我们可以使用copy /d把该文件拷贝到非NTFS格式的盘上或者拷贝到网络的共享目录中,结果是明文文件。
前面已经说过,不能直接通过进程启动copy命令,这种方法不符合要求。如果是本地,源文件是什么样的,拷贝结果也要一样,如果是网络或者非ntfs格式的,拷贝结果变成明文即可。
我来解释一下 /d 的作用,如果一个文件(NTFS格式),设置了它的加密属性(右键选中文件-->属性-->General属性页上点击Advanced按钮 -->选中 "Encrypt contents to secure data"),这个时候如果使用copy命令(不带参数)把该文件拷贝到本地硬盘上另一个地方(NTFS格式),那么拷贝的结果也是一个加密文件,若拷贝到非NTFS格式的盘上或者拷贝到网络的共享目录中,则会发生拷贝异常,说是不能加密该文件。这种情况下,我们可以使用copy /d把该文件拷贝到非NTFS格式的盘上或者拷贝到网络的共享目录中,结果是明文文件。
ems加密是操作系统在底层实现的加密解密机制,虽然知道它默认的加密算法是aes,但不知道它用的是什么密码,怎么读出来在加密啊??
我记得WINAPI 里面有 CreateFile 函数提供了类似的选项,就是关于由NTFS文件系统向其它文件系统复制时加密文档如ZIP文档复制的情况。你可以通过 GetVolumeInformation 方法得到卷的信息,如果有 FS_FILE_ENCRYPTION 标志位,则表示可加密压缩。楼主可上MSDN,搜这两个关键词: File Encryption 和 CreateFile那么你的问题就转化为,如何从C#调用WINAPI函数的问题了。这个就挺简单的了。
晕倒,要看清楚前面的帖子在回答啊,非NTFS格式的盘,拷过去要求是明文。
file.copy()拷贝ems加密文件到非NTFS格式的盘或者网络共享目录下会爆异常,说该文件不能加密。
前面已经说过,不能直接通过进程启动copy命令,这种方法不符合要求。 如果是本地,源文件是什么样的,拷贝结果也要一样,如果是网络或者非ntfs格式的,拷贝结果变成明文即可。
{
string strPath = strBatPath + "\\1.txt";
strBatPath = strBatPath + "\\copy.bat";
string[] strs; if (System.IO.File.Exists(strBatPath))
System.IO.File.Delete(strBatPath); string batTxt = "copy /d " + strPath + "\"";
Stream st = new FileStream(strBatPath, FileMode.OpenOrCreate); using (StreamWriter sw = new StreamWriter(st))
{
sw.Write(batTxt.ToString());
sw.Close();
st.Dispose();
st.Close();
}
}