gpt4 book ai didi

c# - 如何用 "c:\test.zip"替换包含 @"c:\test.zip"的字符串

转载 作者:行者123 更新时间:2023-11-30 21:01:54 26 4
gpt4 key购买 nike

我的问题是:

我需要编写一个压缩一个文件的应用程序。

应用程序成功地从用户定义的位置读取文件,但问题是,我无法将存档文件名写入指定文件夹而不会出现烦人的错误:“进程无法访问文件 'C:\Users\bg\Desktop\1323.zip' 因为它正被另一个进程使用。”在该行:archiver.OpenArchive (System.IO.FileMode.Create);

这是我的 c sharp 代码:

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

最佳答案

我不能肯定地说,但看起来你试图打开同一个文件两次——第一次是当你调用 "myStream = saveFileDialog1.OpenFile()) != null"

,当您再次调用 "archiver.OpenArchive (System.IO.FileMode.Create);"

我建议您在开始归档操作之前关闭 myStream。

关于c# - 如何用 "c:\test.zip"替换包含 @"c:\test.zip"的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13789835/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com