2010-02-26 196 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);