C# I/O 异常 "This machine is disabled for file encryption.\r\n"

标签 c# .net encryption-symmetric

我正在实现一个简单的 C# 控制台应用程序来加密或解密给定的文件。我在这里使用 .net 框架的内置方法。请看下面的程序,它显示了负责处理加密和解密操作的类。

class FileHandler
{
    string fileToHandle = null;//name of the file
    private Boolean isEncrypted = false;//yes or no
    public FileHandler(string fileToHandle)
    {
        this.fileToHandle = fileToHandle;
    }
    //encrypt the current file
    public void encrypt()
    {
        if (!isEncrypted)
        {
            try
            {
                File.Encrypt(fileToHandle);
            }
            catch (FileNotFoundException e)
            {
                Console.WriteLine(e.StackTrace);
            }
            catch (IOException e)
            {
                Console.WriteLine(e.StackTrace);
                Console.WriteLine(e.Message);
            }
        }

    }
    //decrypt the current file
    public void decrypt()
    {
        if (isEncrypted)
        {
            try
            {
                File.Decrypt(fileToHandle);
            }
            catch (FileNotFoundException e)
            {
                Console.WriteLine(e.StackTrace);
            }
            catch (IOException e)
            {
                Console.WriteLine(e.StackTrace);
                Console.WriteLine(e.Message);
            }
        }
    }
}

但是当我尝试使用方法 encrypt() 时,它以 I/O 错误结束,该错误指出消息“这台机器已禁用文件加密。\r\n”。我在 Windows 7 企业版中使用 .net framework 4.5。我的硬盘驱动器中有 NTFS 文件系统。

请帮我解决这个问题。

最佳答案

File.Encrypt 进行 NTFS 文件加密。如果文件系统不是 NTFS,或者您正在运行的用户无权修改 NTFS 设置(编辑:Or NTFS File encryption is disabled),您将无法使用 File.Encrypt 函数。

关于C# I/O 异常 "This machine is disabled for file encryption.\r\n",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25562557/

相关文章:

c# - Unity 容器内存泄漏

swift - 如何在 macOS 上正确存储加密 key 以便只有我的可执行文件可以访问它们?

c# - 如何使用 C# 将 Word 文档中的形状边框设置为无?

c# - 仅显示 API 抓取数据后 90 天内的结果

c# - .Net 如何直接播放音频样本

security - Kerberos 领域理解

javascript - 尝试通过 URI -/uDDBA 发送加密文本导致 "URIError: URI Malformed"

c# - 从字符串格式化 Html 代码

c# - 为什么 ConcurrentDictionary.GetOrAdd(key, valueFactory) 允许 valueFactory 被调用两次?

.net - TFS 静默修复 .sln 文件 - 有办法阻止它吗?