我知道這個問題被問到1000次但我不想使用任何外部工具,如(DotNetZip或SharpZipLib)。如何使用「SHFILEOPSTRUCT」從ZipFile解壓縮單個文件?
我有這個當前工作一段代碼:
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
提取單個文件/文件夾嗎?我想念什麼?
代碼支持:
Framework版本:.NET客戶端4
OS:WinXP中,8,8.1,10
EDIT(通知):
當使用此片的代碼在C#線程中總是會得到'Path length exceeded'錯誤......在這種情況下,您需要使用'Dispatcher'。
您的目標.Net框架是什麼? – 2014-10-29 15:11:46
我使用.NET客戶端4.(只是添加到我的問題) – k1ll3r8e 2014-10-29 15:19:03
請注意,根據MSDN [這裏](http://msdn.microsoft.com/en-us/library/windows/desktop/bb759795%28v= vs.85%29.aspx),你應該使用[IFileOperation](http://msdn.microsoft.com/en-us/library/windows/desktop/bb775771%28v=vs.85%29.aspx)從Vista起 – 2014-10-29 15:19:36