问题描述
||
有人在启用加密文件系统的情况下从C#创建了新目录吗?
此外,有关从安装中执行此操作的任何信息也将有所帮助。
解决方法
创建加密目录将需要两个步骤-使用Directory.CreateDirectory创建目录,然后使用Win32函数EncryptFile对其进行加密。示例代码-
using System;
using System.IO;
using System.Runtime.InteropServices;
namespace EncryptDir
{
public class Sample
{
DllImport(\"advapi32.dll\",CharSet = CharSet.Auto,SetLastError = true)]
static extern bool EncryptFile(string filename);
public static void Main ()
{
Directory.CreateDirectory(\"MyEncryptedDirectory\");
EncryptFile(\"MyEncryptedDirectory\");
}
}
参考文献:
EncryptFile函数@ MSDN
处理加密的文件和目录@ MSDN
,似乎调用File.EncryptFile也可以在目录上使用。我想它只是在内部转发到EncryptFile
。
,托管方法File.Encrypt()
和FileInfo.Encrypt()
都简单地调用了本地EncryptFile()
,这在另一个答案中显示。
因此,无需费神去声明p / invoke API。只需使用内置方法。