作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个更新应用程序的解决方案,该应用程序使用 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/
我有一个更新应用程序的解决方案,该应用程序使用 API DotNetZip ( http://dotnetzip.codeplex.com/ ) 来处理 ZIP 文件。一种方法是覆盖某些文件夹中的文件
我是一名优秀的程序员,十分优秀!