2011-09-30 77 views
0

讀取文件中的文件或緩存目錄在我的工作,我只是想讀在iPhone設備下載的PDF目標C - 不能在iPhone

起初,我試圖用「bundleRoot」目錄下,它在模擬器中工作,但不在設備上。現在,我只是在模擬器中測試文檔或緩存目錄。

How can I get a writable path on the iPhone?

後,我看了上面的主題,

我一直在使用文件或緩存目錄嘗試。

這是我在尋找可寫的路徑代碼

/************** *******************************************/

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); 
NSString *cachePath = [paths objectAtIndex:0]; 
BOOL isDir = NO; 
NSError *error; 

if (! [[NSFileManager defaultManager] fileExistsAtPath:cachePath isDirectory:&isDir] && isDir == NO) { 
    [[NSFileManager defaultManager] createDirectoryAtPath:cachePath withIntermediateDirectories:NO attributes:nil error:&error]; 
} 


NSString *path_to_file = [cachePath stringByAppendingPathComponent:@"testing6.pdf"]; 

/********************************************* *********************************/

我可以找到下載的文件,並在此獲取大小目錄,但我無法使用以下代碼讀取該文件:

  pdf = CGPDFDocumentCreateWithURL((CFURLRef)pdfURL); 

    page = CGPDFDocumentGetPage(pdf, 1); 
    CGPDFPageRetain(page); 

    CGRect pageRect = CGPDFPageGetBoxRect(page, kCGPDFMediaBox); 

返回pageRect.size.width是0

我打印出來後,下載並檢索文件的路徑還包括:

/用戶/ ITDEV /庫/應用程序支持/ iPhone模擬器/ 4.3。 2/Applications/806ED359-70F8-4C07-996F-6AFC959B3FC7/Library/Caches/testing6.pdf

任何人都可以幫我嗎?

回答

0

如果所有其他的答案將無法正常工作,然後嘗試使用一個NSBundle如下:我面臨

NSString *path = [[NSBundle mainBundle] pathForResource:@"myfilename" ofType:@"pdf"]; 
NSLog("path : %@",path); 

同樣的問題,我發現我的plist文件是不是在Documents目錄,而是它讓我路徑我的應用程序,然後顯示MYAppName.app/myPlist.plist文件。這意味着應用程序文件將我的plist文件包含在它自己的包中,即MainBundle。

+0

感謝您的回覆。我也嘗試過這種方式(使用包)。它完全在模擬器中工作,但不在設備上。有人說這個Bundle不能在設備中寫入。真的嗎? – user972268

+0

我相信,當文件捆綁在一起時,它們將不會被寫入。但我不確定。 – DShah

+0

所以我不能將pdf文件保存到設備包中T_T – user972268

0

您可以在UIWebView中讀取文件。

並通過使用下面的代碼,您可以打開文件。

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); 
NSString *cachePath = [paths objectAtIndex:0]; 
BOOL isDir = NO; 
NSError *error; 

if (! [[NSFileManager defaultManager] fileExistsAtPath:cachePath isDirectory:&isDir] && isDir == NO) { 
    [[NSFileManager defaultManager] createDirectoryAtPath:cachePath withIntermediateDirectories:NO attributes:nil error:&error]; 
} 


NSString *path_to_file = [cachePath stringByAppendingPathComponent:@"testing6.pdf"]; 

NSURL *targetURL = [NSURL fileURLWithPath:path_to_file]; 
NSURLRequest *request = [NSURLRequest requestWithURL:targetURL]; 
[YourWebViewName loadRequest:request]; 

不要忘了你的WebView的IBOutlet用筆尖文件的UIWebView的連接。

+0

感謝您的回覆。我曾用這種方式在我的應用程序中查看PDF,但我們認爲這還不夠好。我們希望在查看之前將小尺寸的PDF存儲到應用程序中。 – user972268

+0

你有從那裏你想要存儲在您的應用程序路徑的PDF文件的網址。 – SJS

+0

是的!我可以完美地從PDF下載PDF到Iphone文檔目錄! 但我無法以編程方式打開它,如果直接轉到文件夾,我可以手動打開pdf。 – user972268