我正在实现一个简单的 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/