I'm writing an iPhone app which downloads a tar-gzipped file from a Webserver, then needs to unarchive this file so that it can be copied into the app's Documents folder.
I'm using tar/gzip because I want to download a whole bunch of small files in one HTTP request, to make everything nice and fast.
I've investigated solutions like http://www.feep.net/libtar/, but as a C/Objective-C newb, I can't get any of them to compile for the iPhone platform.
(I felt like I should just be able to do a system call to "tar -zxvf myfile.tar.gz", but it would appear it's not that easy!)
So is there a simple way to just un-tar a file on the iPhone? Or am I going about this all wrong, and is there a better way to do this?
Thanks in advance!
Nik
This blog post should help you:
http://blog.hawkey.org/?p=332
EDIT: Google cache version of the same page which actually links to a forum post here which links to a Google Code project here, containing some code which implements unzipping on iOS.
Here is a light untar library for iOS : https://github.com/mhausherr/Light-Untar-for-iOS
Complete blog post about the solution : http://blog.octo.com/en/untar-on-ios-the-pragmatic-way/
Hope this helps,
Vincent
I took a different approach by building libarchive and bz2lib as a static library for iOS. You can find it here:
http://github.com/davepeck/iOS-libarchive/
Related
I have an app that saves data in my Documents directory. It would be very useful to be able to mail the data file to some other users so they can also use the gathered information. I have spent most of today looking for a solution, but have not found any answers basic enough to be of any help. So, I would greatly appreciate some help to get me started. Like, what do I need to do to make IOS aware that I am interested in opening ( in my case actually only copying the file to the app’s Documents directory for further chewing) a file with, for example the .xyz-extension and how this is done.
Much appreciated,
stalle
Running on a real device, there seems to be no problem.
Im new to iPhone programming and wanted to see how people have solved this problem:
Ive created my app which will ship with certain pLists and .png files in the main bundle. However, what I want to do is when the app starts up, Id like it to check my server to see if there are updated versions of the files in the documents folder available. If so Id like the app to download those files.
I was wondering if someone can point me to some resources on how to do this? Ive searched online but haven't come up with good hits.
Whats the google key-word for searching this topic anyways?
Thanks a lot
you can use NSUrlRequest to download the files, to move them to the correct place you can use NSFileManager, if you look at the apple docs for both these classes there should be sample code explaining how to copy/save a file from NSData, and also how to download it.
I don't have any example resources of how to do exactly this, though I would probably do something along the lines of onAppLoad checking to see if the content of the application that you want to keep updated is the most recent, and if not, download it.
As for keywords to search I would try something along the lines of "Automatic App Content Updating/Verification" and throw in "iOS/iPhone/iPad" or some similar combination.
I'll do some more poking around and shoot you a comment notification if I find anything worthwhile, and then edit my post with it.
please help me to understand that which library will be the best to extract .tar files in an iphone application.
on googling i have found in few posts that libacrchive can be used but another posts says that it will be problematic if you go to upload your app on App store.
Please suggest a suitable library for this purpose.
I write a lib exactly for that: extracting standard tar file without zlib compression.
https://github.com/mhausherr/Light-Untar-for-iOS
My lib take just few lines when libarchive heights 4.7Mb.
Full explanation here: http://blog.octo.com/en/untar-on-ios-the-pragmatic-way/
I noticed the functionality on some PDF viewer for iOS. You can actually turn phone in server and upload files there from a normal computer. I found HTTP server implementation from iOS on Google site, so implementing upload accepting functionality isn't a big deal for me. However I would like to save couple hours of my time, so if somebody could point me to ready to use solutions in sources, I will own you a bottle of your favorite beer.
It looks like I will have an extra beer this weekend. No I didn't create one, but i found one
enter link description here
Actually I found bunch of them, but this one seems has upload handling code which was my goal. If somebody found a better server solution, then do not hesitate to share with me.
I was recently asked if I could code a simple IPhone/IPad app that:
Checks an FTP server for changes to a PDF file (easy)
Downloads the lastest PDF (easy)
Adds or replace the file on iBooks (hmm...)
I have tried to find any code that deals with inserting/adding/updating files inside iBooks, but sadly there is very little on the subject. Is this even possible except manually through iTunes? My gut feeling says that it's just a matter of writing the file to a folder..
It makes sense if it were such an API. There are many companies that would like to keep their product portfolios up to date, or research manuals that (in theory at least) could benefit greatly from being updated automatically through an app.
Any help or comments are welcome.
My gut feeling says that it's just a
matter of writing the file to a
folder..
Unfortunately, this probably isn't the case. I'd imagine iBooks using some sort of database to keep track of books, rather than simple files.
There is a URL schema for iBooks, but it's undocumented, and nobody has found any methods that would update/replace a book (I don't know if any even exist): How do I launch iBooks e-reader programmatically on iPad?
If you feel this is something that would be beneficial to iBooks, you should consider filing a feature request on the Apple dev site.
UIDocumentInteractionController is your friend in this case