flex-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Fréderic Cox <coxfrede...@gmail.com>
Subject Re: Unzip ANE for Flex\AIR Desktop App
Date Tue, 25 Oct 2016 09:24:06 GMT
Glad I could help!

On Tue, Oct 25, 2016 at 8:46 AM, Deepak MS <megharajdeepak@gmail.com> wrote:

> Thank you thank you thank you so much Fréderic. It worked flawlessly. 500MB
> zip file gets unzipped in just 5  - 6 seconds. I had been cracking my head
> on how to get this working. You made my day! I'm sure others too
> would benefit from it.
>
> Cheers!
> -D
>
>
>
> On Sun, Oct 23, 2016 at 6:58 PM, Fréderic Cox <coxfrederic@gmail.com>
> wrote:
>
> > You can use File.applicationDirectory and put the 7za.exe in your project
> > folder. I placed it in /native_bin/win/7za.exe. Make sure the file has
> > "execute" permissions (right-click for properties of the file in Flash
> > Builder).
> >
> > I have defined it as NativeProgramsSettings.UNZIP =
> > File.applicationDirectory.resolvePath("native_bin/win/7za.exe"); for
> > Windows and NativeProgramsSettings.UNZIP =
> > File.applicationDirectory.resolvePath("native_bin/mac/7za"); for Mac
> > (depending on Capabilities.OS)
> >
> > Then for unzipping (I don't use zip functionality in my app) it is as
> > follows:
> >
> > private function unzipNative(zipFile:File):void{
> >
> > this.dispatchEvent(new Event("indicatorShowRequest"));
> >
> > var targetDir:File = File.applicationStorageDirectory.
> > resolvePath("unzipped"
> > );
> >
> > targetDir.createDirectory();
> >
> > targetDir = targetDir.resolvePath("unzip_" + new Date().time + "_" +
> > Math.round(Math.random()*10000));
> >
> > targetDir.createDirectory();
> >
> > tempDirectoryForZip = targetDir;
> >
> > var npInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo;
> >
> > npInfo.executable = NativeProgramsSettings.UNZIP;
> >
> > var args:Vector.<String> = new Vector.<String>;
> >
> > args.push("x");
> >
> > args.push(zipFile.nativePath);
> >
> > args.push("-r");
> >
> > args.push("-o" + targetDir.nativePath);
> >
> > npInfo.arguments = args;
> >
> > var np:NativeProcess = new NativeProcess;
> >
> > np.addEventListener(NativeProcessExitEvent.EXIT, npUnzipExitHandler);
> >
> > np.start(npInfo);
> >
> > }
> >
> >
> > For zip you need to have different arguments of course. You can check by
> > googling "7za command line".
> >
> >
> > Hope it works for you
> >
> > On Fri, Oct 21, 2016 at 8:23 AM, Deepak MS <megharajdeepak@gmail.com>
> > wrote:
> >
> > > Interesting. I never knew about that. Doesn't that mean user needs to
> > have
> > > 7za installed on their systems? If so, what if users don't have it
> > > installed. Can we package the 7za.exe within our AIR app and use it?
> > >
> > > I looked into some of the examples. But not quite getting it to work:
> > >
> > > Same code with pretty print : https://codepaste.net/82gk2q
> > >
> > >
> > > if(NativeProcess.isSupported)
> > > {
> > > var nativeProcessStartupInfo:NativeProcessStartupInfo = new
> > > NativeProcessStartupInfo();
> > > var file:File = new File('c://zip//7za.exe'); //instead of using it
> from
> > > local file system, i want to place exe file withing source and use it
> > here
> > > nativeProcessStartupInfo.executable = file;
> > > var processArgs:Vector.<String> = new Vector.<String>();
> > > processArgs.push("7z e file.zip");//+localZipFile.nativePath);
> > > //"file.zip"
> > > resides inside "c://zip//", tried "7za e file.zip", tried "7za.exe
> > > file.zip", none of those work
> > > nativeProcessStartupInfo.arguments = processArgs;
> > > process = new NativeProcess();
> > > process.start(nativeProcessStartupInfo);
> > > process.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA,
> > > onOutputData);
> > > process.addEventListener(ProgressEvent.STANDARD_ERROR_DATA,
> > onErrorData);
> > > process.addEventListener(NativeProcessExitEvent.EXIT, onExit);
> > > process.addEventListener(IOErrorEvent.STANDARD_OUTPUT_IO_ERROR,
> > > onIOError);
> > > process.addEventListener(IOErrorEvent.STANDARD_ERROR_IO_ERROR,
> > onIOError);
> > > }
> > >
> > > For all the options that i tried above, I get following trace:
> > >
> > > (onOutputData)
> > > Got:
> > > 7-Zip (A) 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
> > >
> > > (onErrorData)
> > > Error:
> > > Incorrect command line
> > >
> > > (onExit)
> > > Process exited with  7
> > >
> > >
> > > Kindly let me know if I am missing something there.
> > >
> > > On Thu, Oct 20, 2016 at 6:53 PM, Fréderic Cox <coxfrederic@gmail.com>
> > > wrote:
> > >
> > > > I successfully used 7za for both Mac and Windows. You don't need a
> > native
> > > > extension for desktop but you can just use the NativeProcess API with
> > the
> > > > extendedDesktop profile.
> > > >
> > > > On Thu, Oct 20, 2016 at 10:48 AM, Deepak MS <
> megharajdeepak@gmail.com>
> > > > wrote:
> > > >
> > > > > Hi Hans,
> > > > > Yes, I did try that. It works fine for smaller files. But
> > > unfortunately,
> > > > > unzipping process crashes if we use it for bigger files. My zip
> file
> > > size
> > > > > is around 500MB.  It fails at ByteArray.uncompress() as it tries
to
> > > > > uncompress entire file at a time. That is the reason I was looking
> > out
> > > > for
> > > > > native way of unzipping the file.
> > > > >
> > > > > For iOS, I have used ANEZipFile library :
> > > > > https://github.com/xperiments/ANEZipFile
> > > > >
> > > > > It works flawlessly and takes just 5 - 6 seconds to unzip a 500MB
> zip
> > > > file.
> > > > > That is just for iOS though.
> > > > >
> > > > > There is another library:
> > > > > http://airnativeextensions.com/extension/com.distriqt.ZipUtils
> which
> > > > works
> > > > > on both iOS and Android, but it's not free.
> > > > >
> > > > > -Deepak
> > > > >
> > > > >
> > > > > On Thu, Oct 20, 2016 at 1:49 PM, Hans Nuecke <hnuecke@vservu.de>
> > > wrote:
> > > > >
> > > > > > Hi,
> > > > > >
> > > > > > I use an openSource Library for that:
> > http://flex.coltware.com/2010/
> > > > > > 05/01/as3-zip-unzip-lib-airxzip/
> > > > > >
> > > > > > Search for keywords "coltware airxzip" and you'll find some
nice
> > > posts
> > > > at
> > > > > > stackoverflow with links to the sources or a swc file. And also
> > hints
> > > > how
> > > > > > to use it.
> > > > > >
> > > > > > BTW: What unzipt ANE are you using? I'm considering going the
> other
> > > > way:
> > > > > > convert my desktop APP (or better: parts of it) to an iOS/Android
> > app
> > > > > >
> > > > > > Regards
> > > > > >
> > > > > > Hans
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > Am 20.10.2016 um 06:48 schrieb Deepak MS:
> > > > > >
> > > > > >> Hi there,
> > > > > >>
> > > > > >> I have converted an iPad app to Desktop App ( to make it
work on
> > > > surface
> > > > > >> pro, touch based desktop). iPad App was using an unzip ANE.
But
> it
> > > > > cannot
> > > > > >> be used for desktop app.
> > > > > >>
> > > > > >> I tried searching unzip ANEs for windows, but I couldn't
come
> > across
> > > > > any.
> > > > > >>
> > > > > >> There are C libraries like zlib and minizip. I tried creating
> ANE
> > > > > myself (
> > > > > >> http://easynativeextensions.com/windows-tutorial-the-
> > > > > native-dll-project/
> > > > > >>   ), but I end up getting many errors. I'm not good at C
coding.
> > > > > >>
> > > > > >> Or if anyone is interested to take this up as a project,
company
> > is
> > > > > happy
> > > > > >> to outsource this piece of work at a cost.
> > > > > >>
> > > > > >> Kindly let me know about it.
> > > > > >>
> > > > > >> Cheers!
> > > > > >> Deepak
> > > > > >>
> > > > > >>
> > > > > > --
> > > > > >
> > > > > > ____________________________________________________________
> > _______
> > > > > >
> > > > > > *Hans J. Nuecke* / Gorch-Fock-Str. 6 • 81827 Muenchen •
Germany /
> > > > *VservU
> > > > > > GmbH*
> > > > > > Home:                           +49 (89) 45344858
> > > office:
> > > > > >        +49 (89) 43906 707
> > > > > > mobile:                        +49 (176) 56529048
> > > > > > private: hans@nuecke.de <mailto:hans@nuecke.de>
> > > > >  business:
> > > > > > hnuecke@vservu.de <mailto:hnuecke@vservu.de>
> > > > > > website: www.vservu.de <http://vservu.de> www.megazine3.de
<
> > > > > > http://megazine3.de>
> > > > > > Munich HRB 181251    Geschäftsführer:      Hans J. Nücke
> > USt-Id:
> > > > > >  DE266694113
> > > > > > ____________________________________________________________
> > _______
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message