posts - 319, comments - 22, trackbacks - 0, articles - 11
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

Cocoa中检查文件目录是否有权限的方法

Posted on 2013-01-07 23:24 RTY 阅读(663) 评论(0)  编辑 收藏 引用 所属分类: Mac os转载随笔

cocoa中虽然有[[NSFileManager defaultManager] fileExistsAtPath:filename]来检查文件是否可写的方法,但是对文件目录却不起作用,没办法只好自己写一个比较山寨的方法:

bool IsDirectoryWritable(NSString *dir)
{
    bool result = false;
    
    if(![[NSFileManager defaultManager] fileExistsAtPath:dir])
        return result;
    
    NSString* fileName = [dir stringByAppendingFormat:@"/  _#t.txt"];
    NSData *data = [fileName dataUsingEncoding:NSUTF8StringEncoding];
    [data writeToFile:fileName atomically:NO];
    
    result = [[NSFileManager defaultManager] fileExistsAtPath:fileName];
    if(result)
    {
        [[NSFileManager defaultManager] removeItemAtPath:fileName error:NULL];
    }
    
    return true;
}

这个方法的不好之处就是有可能用于尝试的fileName可能已经存在(虽然已经起的很奇怪了快哭了),这样会导致返回结果不准确,也有可能测试文件创建成功了但是删除却失败了,那么也会导致下次测试不准确,。如果哪位高人有更好的办法,麻烦指教。


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理