我知道这个问题被问过1000次,但我不想使用任何外部工具(例如DotNetZip或SharpZipLib)。
我目前有这段工作代码:
string _from = Path.Combine(apk, "*.*") + '\0';
string _to = destination + '\0' + Path.Combine(destination, "*.*") + '\0';
NativeMethods.SHFILEOPSTRUCT fileop = new NativeMethods.SHFILEOPSTRUCT();
fileop.pFrom = _from;
fileop.pTo = _to;
fileop.wFunc = NativeMethods.FO_Type.FO_COPY;
fileop.fFlags = NativeMethods.FOF_Flag.FOF_WANTNUKEWARNING;
NativeMethods.SHFileOperation(ref fileop);
我的问题是我无法提取/复制单个文件/文件夹。如果我*.*
用res\\drawable\\icon.png
它替换例如,它将什么都不做。
有人可以告诉我如何使用来提取单个文件/文件夹SHFILEOPSTRUCT
吗?我想念什么吗?
该代码支持:
框架版本:.Net Client 4
操作系统:WinXP,8,8.1,10
编辑(通知):
当您在C#线程中使用这段代码时,总会出现“超出路径长度”错误……在这种情况下,您需要使用“分派器”。
SHFileOperation
无法从ZIP文件提取单个项目。我看到的选项是:
ZipPackage
fromSystem.IO.Packaging
是否具有足够的功能来满足您的需求。本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句