-1

私は小さなバックアップ ツールを作成しています...そして、ちょっとした問題があります。これを修正する方法がわかりません。だから、なぜ私はここで尋ねているのですか... コード:

strDirectoryData = dlg1.SelectedPath;
strCheckBoxData = "true";
clsCrypto aes = new clsCrypto();
aes.IV = "MyIV";     // your IV
aes.KEY = "MyKey";    // your KEY      
strDirectoryEncryptedData = aes.Encrypt(strDirectoryData, CipherMode.CBC);
strCheckBoxEncryptedData = aes.Encrypt(strCheckBoxData, CipherMode.CBC);

StreamWriter dirBackup = new StreamWriter(dirBackupPath, false, Encoding.UTF8);
StreamWriter checkBackup = new StreamWriter(autoBackupPath, false, Encoding.UTF8);
dirBackup.WriteLine(strDirectoryEncryptedData, Encoding.UTF8);
dirBackup.Close();
checkBackup.WriteLine(strCheckBoxData, Encoding.UTF8);
checkBackup.Close();'

毎回エラーが発生する - 別のプロセスで使用されているため、プロセスはファイルにアクセスできません...

また、これは Form1_Load にあります

if (!Directory.Exists(folderPath))
{
    Directory.CreateDirectory(folderPath);
    string strCheckBoxData;
    string strDirectoryData;
    string strCheckBoxEncryptedData;
    string strDirectoryEncryptedData;
    strDirectoryData = "Nothing here";
    strCheckBoxData = "false";
    clsCrypto aes = new clsCrypto();
    aes.IV = "MyIV";     // your IV
    aes.KEY = "MyKey";    // your KEY      
    strDirectoryEncryptedData = aes.Encrypt(strDirectoryData, CipherMode.CBC);
    strCheckBoxEncryptedData = aes.Encrypt(strCheckBoxData, CipherMode.CBC);

    StreamWriter dirBackup = new StreamWriter(dirBackupPath, false, Encoding.UTF8);
    StreamWriter checkBackup = new StreamWriter(autoBackupPath, false, Encoding.UTF8);
    dirBackup.WriteLine(strDirectoryEncryptedData);
    dirBackup.Close();
    checkBackup.WriteLine(strCheckBoxEncryptedData);
    checkBackup.Close();
}
else
{
    string strCheckBoxDecryptedData;
    string strDirectoryDecryptedData;

    StreamReader dirEncrypted = new StreamReader(dirBackupPath);
    StreamReader checkEncrypted = new StreamReader(autoBackupPath);

何か案は?

4

1 に答える 1

4

リソースを適切に閉じていません。ファイルを読み取り用に開いたが、再度閉じていないため、書き込み用にファイルを開くことはできません。

オブジェクトの使用が終了したら、オブジェクトを破棄する必要がありますStreamReaderStreamReaderクラスはを実装しますIDisposableusing例外が発生した場合でもファイルが常に閉じられるように、ブロックを使用することをお勧めします。

using (StreamReader dirEncrypted = new StreamReader(dirBackupPath)) {
     // read from dirEncrypted here
}

関連している

于 2012-12-24T20:24:56.310 に答える