gpt4 book ai didi

c# - ExtractExistingFileAction.OverwriteSilently 不会覆盖给定目录中的文件

转载 作者:太空狗 更新时间:2023-10-29 21:54:08 28 4
gpt4 key购买 nike

我有一个更新应用程序的解决方案,该应用程序使用 API DotNetZip ( http://dotnetzip.codeplex.com/ ) 来处理 ZIP 文件。一种方法是覆盖某些文件夹中的文件,如下所示。

ZipFile zipFile = ZipFile.Read(file);
{
foreach (ZipEntry zipEntry in zipFile)
{
zipEntry.Extract(@"C:\IASD\CantinaEscolar", ExtractExistingFileAction.OverwriteSilently);
}
}

哪里:@"c:\SDA\CantinaEscolar" 是 zip (files) 中文件的解压位置。

现在,如果目录中已经包含一个将被解压的同名文件,应用程序将返回与目录中已存在的文件相关的错误。

System.IO.IOException: The file 'c:\IASD\CantinaEscola\nomedoarquivo.exe' already exists

OverwriteSilently 这个方法不应该静默覆盖解压缩的文件(不请求用户确认)?

或者:有什么方法可以强制在目录中覆盖它(-type f 或其他)?

如果您有关于如何完成此任务的任何其他提示,我将不胜感激。

最佳答案

OverwriteSilently 可以覆盖一个文件。如果文件已经存在,即使文件是只读的,它也不会抛出异常。

它不能做的是:

  • 如果解压缩是在不允许的凭据下完成的,则覆盖。
  • 在文件被使用时覆盖。

后者很可能是文件“nomedoarquivo.exe”的情况。此可执行文件可能在尝试覆盖时正在运行。

关于c# - ExtractExistingFileAction.OverwriteSilently 不会覆盖给定目录中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22865581/

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