为了提取.zip文件,我使用:
using (var strm = File.OpenRead(file))
using (ZipArchive a = new ZipArchive(strm))
{
a.Entries
.Where(o => o.Name == string.Empty && !Directory.Exists(
Path.Combine(Application.StartupPath, o.FullName)))
.ToList()
.ForEach(o => Directory.CreateDirectory(
Path.Combine(Application.StartupPath, o.FullName)));
a.Entries
.Where(o => o.Name != string.Empty)
.ToList()
.ForEach(e => e.ExtractToFile(
Path.Combine(Application.StartupPath, e.FullName), true));
}
此外,如果没有文件夹,这会自动创建文件夹。
但是扩展名为 .sct 的文件存在问题。
例如。如果.zip文件仅包含一个文件:QuestLog.sct
,则有问题。
名为desktop.ini
的文件是.zip文件中包含的要提取的优先级文件,但问题是此文件不存在。
这将创建一条错误消息,因为它尝试提取不存在的文件。因此,我想知道是否有可能摆脱此问题,例如通过更改无法尝试提取文件desktop.ini
的C#代码。
其他 .sct 文件不存在此问题。
我不知道会发生什么。