如何更改加密文件的目录?

问题描述

我开发了这个 C# 系统,它使用 aes-gcm 算法对文件进行真实加密。但是,我不希望加密文件与原始文件夹位于同一文件夹中。我怎样才能改变它?以下是我的代码片段以及我需要帮助的确切位置。

  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() 将创建不存在的目录。