2011-08-05 31 views
1

我有一个名为“0.ballpoint”的文件,我想要做的就是存储一些坐标(不真的想使用核心数据,因为它看起来有点过分)。我把它放在我的项目,但当我尝试这样做:如何使用FILE *与iPhone

if (access("0.ballpoint", F_OK) != -1) { 
    printf("file exists\n"); 
} 
else { 
    printf("doesn't exist\n"); 
} 

它说它“不存在”。我需要输入完整的路径名吗?如果我将它放在实际的iPhone/iPod Touch上时我该怎么做?

回答

0

CoreData不适用于文件访问。还有其他文件API可用于iPhone。 请通过NSFileManagerNSStream文档。

例如,如果你的目的是要检查文件是否存在于一定的路径,你可以使用 (你的文件添加到资源)

NSString *filePath = [[NSBundle mainBundle] pathForResource: @"0" ofType: @"ballpoint"]; 
BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:filePath]; 

不想使用低层次的东西(C文件句柄)除非你有合理的理由这样做。必须仔细选择路径(因为你不能在某些路径上作出假设,这在将来可能不再存在)。

说了这么多,如果你喜欢用C文件处理工作,

NSString *filePath = [[NSBundle mainBundle] pathForResource: @"0" ofType: @"ballpoint"]; 
FILE *fileHandle = fopen([filePath cStringUsingEncoding:NSASCIIStringEncoding],"r"); 
+0

仍然尝试它,似乎合法,但正确的蝙蝠:“@”应该在“0”和“圆珠笔”的前面,在“r”之后它应该是一个“)”。 – Dair

+0

纠正了,所以我打了一些如何检查sytax错误(如拼写检查):) – Tatvamasi

+0

我得到它的工作,但只是最后一件事:你应该删除“r”后的括号。 – Dair

-1

它需要成为应用程序的一种资源,这种方式可以在使用应用程序的过程中随时取出文件。

在Ipod开发中,我没有太受过良好教育,但我知道它不能访问它,如果它仍然在你的计算机上,所以你需要将它导入到你的应用程序中,完整的文件路径名称。

+0

所以我需要测试它在iPhone上(你确定?因为他们有核心数据之类的东西,可以让你应对与iPhone模拟器上的文件)?你知道完整的文件路径是什么? – Dair

+0

如果它工作正常,你应该能够在模拟器中正确运行它。 – Keeano

+0

您知道如何导航到应用程序中的页面,导航到可以编译并呈现的文件类型。你必须将你的文件绑定到你的应用程序并从你的代码中调用它。 – Keeano