C#I/O异常”;此计算机已禁用文件加密. ”;
本文关键字:加密 文件 异常 C#I 计算机 | 更新日期: 2023-09-27 18:20:06
我正在实现一个简单的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"。我在windows7企业版中使用.net framework 4.5。我的硬盘里有NTFS文件系统。
请帮我解决这个问题。
File.Encrypt
执行NTFS文件加密。如果文件系统不是NTFS,或者您运行的用户无权修改NTFS设置(编辑:或禁用NTFS文件加密),则您将无法使用File.Encrypt
功能。
试试这个:
[HKEY_LOCAL_MACHINE'SOFTWARE'Microsoft'Windows NT'CurrentVersion'EFS]
EfsConfiguration=0 (dword)
LastGoodEfsConfiguration=0 (dword)
将双字值更改为1以禁用,将其更改为0以启用。