2011-09-30 57 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