暗号化/復号化プログラムを開発しています。しかし、私はそれを見つけることができない問題がありました。問題は1つのファイルだけが複数ではなく一度に暗号化されることです。私は複数のファイルを選択するのに疲れましたが、最初のファイルだけを暗号化しました。また、フォルダ全体を暗号化することもできます。コードの助けが必要です。次のコードのどこに問題があるのか教えていただけますか?フォルダ全体と複数のファイルを暗号化しませんでした
private void encryptbtn_Click(object sender, EventArgs e)
{
SaveFileDialog sfd = new SaveFileDialog();
sfd.Title = "Encrypt To: ";
sfd.Filter = "All Files(*.*)| *.*";
sfd.FileName = "_ENC" + safepath;
if(sfd.ShowDialog() == DialogResult.OK){
if(pathtxt.Text != string.Empty){
string inputFilePath = pathtxt.Text;
string outputfilePath = sfd.FileName;
string EncryptionKey = "MAKV2SPBNI99212";
using (Aes encryptor = Aes.Create())
{
Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(EncryptionKey, new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 });
encryptor.Key = pdb.GetBytes(32);
encryptor.IV = pdb.GetBytes(16);
using (FileStream fsOutput = new FileStream(outputfilePath, FileMode.Create))
{
using (CryptoStream cs = new CryptoStream(fsOutput, encryptor.CreateEncryptor(), CryptoStreamMode.Write))
{
using (FileStream fsInput = new FileStream(inputFilePath, FileMode.Open))
{
int data;
while ((data = fsInput.ReadByte()) != -1)
{
cs.WriteByte((byte)data);
}
}
}
}
}
MessageBox.Show("Encryption Successful");
pathtxt.Text = string.Empty;
}
'string outputfilePath = sfd.FileName;' 1ファイルのみです。代わりに 'FuleNames'を使用してください+ループ –
問題は、あなたがファイルをどこでもループしていないことです。 – MikeT
何をしようとしていますか?ディレクトリを暗号化して1つのファイルにしますか?またはそのディレクトリ内のファイルごとに1つのファイル?ダイアログで選択した複数のファイルを暗号化する – MikeT