2011-12-21 14 views
0

私はiPhone開発で新しくなっています。私はURLを使用してpdfをダウンロードし、それをローカルフォルダに保存したいと思っています。iphoneでローカルにpdfを保存しないでください

は、ここに私のコードです:

NSData *d = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://demo.com/ebookapplication/book_pdf/20111108094614hii.pdf"]]; 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"myfile.pdf"]; 
[d writeToFile:path atomically:YES]; 
if (![[NSFileManager defaultManager] fileExistsAtPath:path]) 
{ 
NSString *myPathInfo = [[NSBundle mainBundle] pathForResource:@"myfile" ofType:@"pdf"]; 
    NSFileManager *fileManager = [NSFileManager defaultManager]; 
    [fileManager copyItemAtPath:myPathInfo toPath:path error:NULL]; 
} 
NSURL *pdfurl = [NSURL fileURLWithPath:path]; 
NSURLRequest *requestObj = [NSURLRequest requestWithURL:pdfurl]; 
[detail.bookweb loadRequest:requestObj];//to display data in web view 

このコードは、URLを使用してWebビューで表示PDFファイルのために働いているが、それは私たちのローカルシステムでPDFを保存するために動作しません。実際に私はこれらのダウンロードPDFを1つのフォルダに保存し、それをライブラリ形式で表示したいと考えています。助けてください。

+1

「ローカルシステムに格納する」という意味は何ですか?すでにドキュメントフォルダにローカルに保存されています。 – Ilanchezhian

+0

ローカルシステムに格納するということは、このファイルを自分のプロジェクトフォルダに保存したい場所から、そのファイルを読み込めるようにすることです.iはドキュメントフォルダ内でこのファイルを検索しましたが、このファイルを取得しませんでした。 4.2 – spatil

答えて

0

-writeToFile:Atomicallyは、すでにファイルを-copyItemAtPath:toPath:メソッドで指定したフォルダに配置しているため、冗長です。ドキュメントはすでにドキュメントディレクトリフォルダにあり、それを同じディレクトリにコピーしました。私はあなたの問題だと思う。

EDIT:

このラインHERE:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"myfile.pdf"]; 

があなたのパスを指定します。

あなたはNSLogそれこの行をすることができます:あなたのライブラリーのコメントについてはNSLog(@"Document Path = %@", path);

、その難しいことではありません。その後、表示されているドキュメントディレクトリをトロールし、NSArrayのにファイルを追加するアプリケーションを作成するために一緒にhttp://developer.apple.com/library/ios/samplecode/DocInteraction/Listings/Classes_DITableViewController_h.html

:DITableViewからhttps://github.com/AlanQuatermain/AQGridView

そしてAppleのDocwatcherクラス:基本的にはこのすでに、ワイヤー AQGridViewをして私のアプリ、グリッドによって。より簡単なアプローチは、DITableViewControllerを使用することです。あなたの問題を解決すると考えれば、ちょうどグリッドがもう少しピザズのためです。

+0

CodaFiありがとう、私はlibrary.Butを実装するDocwatcherを使用することができますplesae私は私のファイルのコピーの問題を解決する方法を教えてください?私は1つのフォルダにすべてのPDFファイルを保存したい。私はそのフォルダへのパスを設定することはできますか? – spatil

+0

あなたのwriteToFileメソッドは既にファイルパスを設定しています。 – CodaFi

+0

しかし、このパスはどこに設定されますか?私はフォルダ名を意味しますか?ドキュメントフォルダの場合は、ドキュメントフォルダ内のファイルを検索しましたが、ファイルが存在しません.plplヘルプ – spatil

関連する問題