启用加密文件系统,从C#创建新目录

问题描述

|| 有人在启用加密文件系统的情况下从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。只需使用内置方法。