在启用加密文件系统的情况下从 C# 创建新目录

发布于 2024-11-09 13:51:19 字数 70 浏览 3 评论 0原文

有人在启用加密文件系统的情况下从 C# 创建了新目录吗?

此外,任何有关通过安装执行此操作的信息也会很有帮助。

Has anyone created a new directory from C# with Encrypting File System switched on?

Additionally any information on doing this from an install would be helpful too.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

烛影斜 2024-11-16 13:51:19

创建加密目录需要两个步骤 - 使用 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");
        }
}

参考文献:

加密文件函数 @ MSDN

处理加密文件和目录 @ MSDN

Creating an encrypted directory would be a two step process - create it using Directory.CreateDirectory and then encrypt it using the Win32 function EncryptFile. Sample code -

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");
        }
}

References:


EncryptFile Function @ MSDN


Handling encrypted files and directories @ MSDN

酒废 2024-11-16 13:51:19

看来调用 File.EncryptFile 也有效在目录上。我猜它只是在内部转发到 EncryptFile

It seems that calling File.EncryptFile also works on directories. I guess it just forwards to EncryptFile internally.

反目相谮 2024-11-16 13:51:19

托管方法 File.Encrypt()FileInfo.Encrypt() 两者都只是调用本机 EncryptFile() ,如 < a href="https://stackoverflow.com/a/6472649">另一个答案。

因此,无需费力去声明 p/invoke API。只需使用内置方法即可。

The managed methods File.Encrypt() and FileInfo.Encrypt() both simply call the native EncryptFile() that is shown in the other answer.

So, no need to go to all the trouble to declare the p/invoke API. Just use the built-in methods.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文