问题描述
所以我在这方面找到了很多信息,而且有很多不同的方式,这似乎非常令人难以抗拒,因为我还是个新手。所以我的问题是,我如何将这个功能合并到我自己的代码中,它在提取时自动覆盖文件而不是给我一个错误?如果不是这样,有人可以将我引向易于理解和教我的教学领域吗?
public static void Extract(string nameSpace,string outDirectory,string internalFilePath,string resourceName)
{
Assembly assembly = Assembly.GetCallingAssembly();
using (Stream s = assembly.GetManifestResourceStream(nameSpace + "." + (internalFilePath == "" ? "" : internalFilePath + ".") + resourceName))
using (BinaryReader r = new BinaryReader(s))
using (FileStream fs = new FileStream(outDirectory + "//" + resourceName,FileMode.OpenorCreate))
using (BinaryWriter w = new BinaryWriter(fs))
w.Write(r.ReadBytes((int)s.Length));
}
这是我目前正在开展业务的地方。
private void button2_Click(object sender,EventArgs e)
{
Extract("nameSpace",@"outDirectory","internalFilePath","resourceName");
string sourceZipFile = @"C:\test.zip";
string targetFolder = @"C:\";
ZipFile.ExtractToDirectory(sourceZipFile,targetFolder);
Process process = new Process();
processstartinfo p= new processstartinfo();
p.FileName = @"C:\test.zip";
if ((System.IO.File.Exists(p.FileName)))
{
System.IO.File.Delete(p.FileName);
}
}
解决方法
使用具有 overwriteFiles
参数的正确重载:
ZipFile.ExtractToDirectory(sourceZipFile,targetFolder,true);
如果您在 Framework