2010-02-26 194 views
0

我正在使用iphone/ipad 3.2 SDK,并在默认资源目录“Resources-iPad”下创建了一个名为“Docs”的子目录。如果我把直接在资源目录“file.pdf”,使这个电话,一切运作良好:无法使用CFBundleCopyResourceURL搜索子目录

CFURLRef pdfURL = CFBundleCopyResourceURL(CFBundleGetMainBundle(),CFSTR("file.pdf"), NULL, NULL); 

如果我把“file.pdf”中的“文件”的子目录,每个苹果文档试试这个,呼叫返回NULL:

CFURLRef pdfURL = CFBundleCopyResourceURL(CFBundleGetMainBundle(),CFSTR("file.pdf"), NULL, CFSTR("Docs"); 

我做了什么不正确?

回答

0

确保“Docs”子目录确实包含在您的内置应用程序中。

path for resource in directory problem(使用NS *调用,而不是CF *的,但类似的问题)

您也可以尝试分裂名( “文件”)和类型( “PDF”):

CFURLRef pdfURL = CFBundleCopyResourceURL(CFBundleGetMainBundle(),CFSTR("file"), CFSTR("pdf"), CFSTR("Docs"); 
+0

谢谢...我会检查这个方向努力。 – skantner 2010-02-26 12:46:27

0

最后我采取了不同的方法:

paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES); 
sharedDocs = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"Docs"]; 
NSString *filePath = [sharedDocs stringByAppendingPathComponent:fileName]; 
const UInt8 *pFilepath = (const UInt8 *)[filePath UTF8String]; 
CFURLRef pdfURL = CFURLCreateFromFileSystemRepresentation (NULL, pFilepath, strlen((const char*)pFilepath), false);