私の問題は:
1 つのファイルを圧縮するアプリケーションを作成する必要があります。
アプリケーションはユーザー定義の場所からファイルを正常に読み取りますが、問題は、アーカイブ ファイル名を指定されたフォルダーに書き込むことができず、迷惑なエラーが発生することです: "The process cannot access the file 'C:\Users\bg\Desktop\1323.zip
「別のプロセスで使用されているためです。」次の行で: archiver.OpenArchive ( System.IO.FileMode.Create
);
ここに私のCシャープコードがあります:
private void zipThatFileToolStripMenuItem_Click(object sender, EventArgs e)
{
Stream myStream;
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.Filter = "zip files (*.zip)|*.zip|All files (*.*)|*.*";
saveFileDialog1.FilterIndex = 1;
saveFileDialog1.RestoreDirectory = true;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
if ((myStream = saveFileDialog1.OpenFile()) != null)
{
ZipForge archiver = new ZipForge();
// The name of the ZIP file to be create
string env = saveFileDialog1.FileName;
//MessageBox.Show(env);
//this doesn't work
archiver.FileName = env;
//this works
//archiver.FileName = @"D:\test.zip";
// Specify FileMode.Create to create a new ZIP file
// or FileMode.Open to open an existing archive
archiver.OpenArchive (System.IO.FileMode.Create);
// Default path for all operations
archiver.BaseDir = @"C:\Users\bg\Desktop\";
// Add file C:\file.txt the archive; wildcards can be used as well
archiver.AddFiles(openFileDialog1.FileName);
// Close archive
archiver.CloseArchive();
MessageBox.Show("The archive was created! ");
myStream.Close();
}
}
私はこのhttp://www.componentace.com/zip-file-in-c-sharp.htmをこのhttp://www.componentace.com/zip-file-in-c-sharp.htmと一緒に使用しています