访问“私人文件”中的文件文件夹与iTunes传输 [英] Access files in "private Documents" folder transferred with iTunes

查看:193
本文介绍了访问“私人文件”中的文件文件夹与iTunes传输的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

   - (())(()) NSString *)getPrivateDocsDir {

NSArray * paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES);
NSString * documentsDirectory = [paths objectAtIndex:0];
documentsDirectory = [documentsDirectory stringByAppendingPathComponent:@Private Documents];

NSError *错误;
[[NSFileManager defaultManager] createDirectoryAtPath:documentsDirectory withIntermediateDirectories:YES attributes:nil error:& error];

返回documentsDirectory;

}


//然后在一个方法中
NSString * documentsDirectory = [self getPrivateDocsDir];
NSArray * files = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentsDirectory error:& error];

问题是,这在模拟器中工作正常,但在我的iphone上,文件数组是空的。



任何想法如何直接访问这个目录?

私人文件,顾名思义,是私人的。他们故意不能通过iTunes访问。



如果要访问文档目录(可通过itunes访问),请将其替换为

  NSArray * paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES); 

用这个:

  NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES); 






编辑:
访问文件这个。



$ p $ - (NSString *)documentsDirectory {
return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)lastObject];
}

NSString * documentsDirectory = [self documentsDirectory];
NSArray * files = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentsDirectory error:& error];


Currently I'm trying to access the files that are transferred using the new iOS feature introduced with 3.2.

- (NSString *)getPrivateDocsDir {

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    documentsDirectory = [documentsDirectory stringByAppendingPathComponent:@"Private Documents"];

    NSError *error;
    [[NSFileManager defaultManager] createDirectoryAtPath:documentsDirectory withIntermediateDirectories:YES attributes:nil error:&error];   

    return documentsDirectory;

}


 // and then in a method
 NSString *documentsDirectory = [self getPrivateDocsDir];
 NSArray *files = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentsDirectory error:&error];

The problem is, this works fine in simulator, but on my iphone, the files array is empty.

Any ideas how to access this directory directly?

解决方案

The Library-Directory is not accessible through iTunes, and "Private Documents" is inside this library directory. The private documents, are, as the name suggests, private. They are intentionally not accessible through iTunes.

If you want to access the documents directory (which is accessible through itunes) replace this

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);

with this:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);


EDIT: Access the files like this.

- (NSString *)documentsDirectory {
    return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
}

NSString *documentsDirectory = [self documentsDirectory];
NSArray *files = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentsDirectory error:&error];

这篇关于访问“私人文件”中的文件文件夹与iTunes传输的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆