如何更改加密文件的目录?
How can I change the directory for the encrypted files?
我开发了这个使用 AES-GCM 算法真正加密文件的 C# 系统。但是,我不希望加密文件与原始文件夹位于同一文件夹中。我该如何改变它?下面是我的代码片段以及我需要帮助的地方。
foreach (string inputFilePath in inputFilePaths)
{
// Proceed if file exists
if (File.Exists(inputFilePath))
{
try
{
// Encrypt
byte[] key = PasswordAsKey();
string[] encryptedFileContents = AesGcmFileEncryption.Encrypt(inputFilePath, key);
// Here is where I need clarification
string outputFilePath = inputFilePath;
outputFilePath += ".AEncrypt";
if (File.Exists(outputFilePath))
{
skippedBecauseFileExists = true;
}
else
{
File.WriteAllLines(outputFilePath, encryptedFileContents);
counter++;
// Status
label10.Text = "Copied and encrypted \"" + Path.GetFileName(inputFilePath) + "\"";
}
}
catch (Exception ex)
您可以创建子目录并在其中写入加密文件。
string inputDir = Path.GetDirectoryName(inputFilePath);
string outputDir = Path.Combine(inputDir, "EncryptedFiles");
Directory.CreateDirectory(outputDir);
string outputFileName = Path.GetFileName(inputFilePath) + ".AEncrypt";
string outputFilePath = Path.Combine(outputDir, outputFileName);
在这里,我从 inputFilePath
中提取目录名称并将 "EncryptedFiles"
附加到它。然后我创建您的新文件名并将其附加到生成的目录。
Directory.CreateDirectory()
如果目录不存在则创建目录。
我开发了这个使用 AES-GCM 算法真正加密文件的 C# 系统。但是,我不希望加密文件与原始文件夹位于同一文件夹中。我该如何改变它?下面是我的代码片段以及我需要帮助的地方。
foreach (string inputFilePath in inputFilePaths)
{
// Proceed if file exists
if (File.Exists(inputFilePath))
{
try
{
// Encrypt
byte[] key = PasswordAsKey();
string[] encryptedFileContents = AesGcmFileEncryption.Encrypt(inputFilePath, key);
// Here is where I need clarification
string outputFilePath = inputFilePath;
outputFilePath += ".AEncrypt";
if (File.Exists(outputFilePath))
{
skippedBecauseFileExists = true;
}
else
{
File.WriteAllLines(outputFilePath, encryptedFileContents);
counter++;
// Status
label10.Text = "Copied and encrypted \"" + Path.GetFileName(inputFilePath) + "\"";
}
}
catch (Exception ex)
您可以创建子目录并在其中写入加密文件。
string inputDir = Path.GetDirectoryName(inputFilePath);
string outputDir = Path.Combine(inputDir, "EncryptedFiles");
Directory.CreateDirectory(outputDir);
string outputFileName = Path.GetFileName(inputFilePath) + ".AEncrypt";
string outputFilePath = Path.Combine(outputDir, outputFileName);
在这里,我从 inputFilePath
中提取目录名称并将 "EncryptedFiles"
附加到它。然后我创建您的新文件名并将其附加到生成的目录。
Directory.CreateDirectory()
如果目录不存在则创建目录。