我遇到了一些问题! 我使用DotNetZip库在c#上制作一个自制的Minecraft启动器。 因此,这个启动器有一个更新选项,它从服务器上下载一个.zip文件,并将所有文件从zip文件中提取到minecraft.jar中!但是一个错误指出“该文件已经存在”,或者它创建了一个名为minecraft.jar的文件夹...... 有没有一种可能的方法将zip压缩文件中的文件直接提取到其他zip压缩文件中? (因为一个.jar是为.zip几乎相同) 这里是下载和extraxt代码(不要奇怪回合一些文本的这是在德国):将文件从zip压缩到jar文件中
private void button3_Click(object sender, EventArgs e)
{
progressBar1.Visible = true; //Dient nur zur Deko
label1.Text = "Download......";
WebClient webClient = new WebClient();
webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged);
webClient.DownloadFileAsync(new Uri("https://dl.dropbox.com/u/97421059/Test.zip"), @"Test.zip"); //Der Link sollte für die Zukünftigen Versionen immer gleich sein!
button3.Visible = false;
}
private void Completed(object sender, AsyncCompletedEventArgs e)
{
label1.Text = "Entpacken....."; //In der Box
progressBar1.Visible = false;
button3.Visible = true;
MessageBox.Show("Download abgeschlossen!!\n\rBitte warte bis der Launcher die Dateien entpackt hat."); // Erklärt sich von selbst
string ExistingZipFile = @"Test.zip";
string sourceDir = AppDomain.CurrentDomain.BaseDirectory;
string TargetDirectory = (sourceDir + "minecraft.jar");
using (ZipFile zip = ZipFile.Read(ExistingZipFile))
{
// ab hier komm der restliche script
// bei dem man eig. nix einstellen soll
foreach (ZipEntry ze in zip)
{
ze.Extract(TargetDirectory, ExtractExistingFileAction.OverwriteSilently);
}
MessageBox.Show("Entpacken der Dateien abgeschlossen!");
label1.Text = "Entpacken abgeschlossen!";
}
}
我粘贴GemHunter1代码后(我希望我在正确的位置填写姓名),我没有错误,但在minecraft.jar仍然是来自downloadet拉链
private void Completed(object sender, AsyncCompletedEventArgs e)
{
label1.Text = "Entpacken....."; //In der Box
progressBar1.Visible = false;
button3.Visible = true;
MessageBox.Show("Download abgeschlossen!!\n\rBitte warte bis der Launcher die Dateien entpackt hat."); // Erklärt sich von selbst
string ExistingZipFile = @"Test.zip";
string sourceDir = AppDomain.CurrentDomain.BaseDirectory;
string TargetDirectory = (sourceDir + "minecraft.jar");
using (ZipFile zip = ZipFile.Read(ExistingZipFile))
{
// ab hier komm der restliche script
// bei dem man eig. nix einstellen soll
if (zip.ContainsEntry("Test.zip"))
{
zip.RemoveEntry("Test.zip");
}
MessageBox.Show("Entpacken der Dateien abgeschlossen!");
label1.Text = "Entpacken abgeschlossen!";
}
}
它在哪里?它是'In der Box' –
也许这就是为什么Minecraft有一个叫做Enderman的生物。这是恩德,男人。 – AaronLS