Mac 上fopen总返回NULL
全局,相对路径都不行,
在沙盒中获取也不行
- //在沙盒中获取Documents的完整路径
- NSString * path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
- //得到path下test文件的路径
- NSString * filePath = [path stringByAppendingPathComponent:@"test"];
- //判断test文件是否存在
- NSFileManager * fm = [NSFileManager defaultManager];
- if ([fm fileExistsAtPath:filePath]) {
- NSLog(@"test文件存在");
- }else{
- NSLog(@"test文件不存在");
- }
使用bundle
NSBundle *mainBundle = [NSBundle mainBundle]; NSString *imagePath = [mainBundle pathForResource:@"abc" ofType:@"png"];
在build PHASE 的copy bundle resource中将要播放的文件添加
然后在fopen([文件指针,utf8...],"rb")
2 发现写文件的时候,bundle路径打开文件又出错了:
因此写文件使用NShomedirectory();
nsstring *path = nshomedirectory();
path = [path stringbyappendingstring:@"文件名"];
file *FPATH = fopen([path utf8string] ,"wb");
到时候去 finder下 commend shift g 然后~/library 下找到保存的写文件
IOS:
FILE * fp = NULL;
if(fp == NULL)
{
NSArray *dic = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *path = [dic objectAtIndex:0];
fp = fopen([[NSString stringWithFormat:@"%@/abc.data", path] UTF8String], "wb");
}
fwrite(DataBuf, 1, DataLen, fp);
fflush(fp);