在基础常数参考中什么是
NSMoviesDirectory
NSMusicDirectory
NSPicturesDirectory
如果我正在处理图像,我应该存储在NSPicturesDirectory
中吗?
发布于 2014-04-28 12:07:06
NSSearchPathDirectory
枚举定义了应该存储特定类型文件的文件夹位置。
这个想法是,这些位置决定了用户希望找到应用程序/文档/图片/电影的路径.
例如:
typedef NS_ENUM(NSUInteger, NSSearchPathDirectory) {
NSApplicationDirectory = 1, // supported applications (Applications)
...
NSLibraryDirectory, // various documentation, support, and configuration files, resources (Library)
NSDocumentationDirectory, // documentation (Documentation)
NSDocumentDirectory, // documents (Documents)
...
NSDesktopDirectory = 12, // location of user's desktop
...
NSMoviesDirectory NS_ENUM_AVAILABLE(10_6, 4_0) = 17, // location of user's Movies directory (~/Movies)
NSMusicDirectory NS_ENUM_AVAILABLE(10_6, 4_0) = 18, // location of user's Music directory (~/Music)
NSPicturesDirectory NS_ENUM_AVAILABLE(10_6, 4_0) = 19, // location of user's Pictures directory (~/Pictures)
...
NSTrashDirectory NS_ENUM_AVAILABLE(10_8, NA) = 102 // location of Trash directory
};
现在..。真正的位置(文件路径)是基于应用程序的存储位置。
由于在IOS中没有用户可见的文件系统,特别是因为每个应用程序都运行在自己的沙箱中,所以它们的用处有限:
他们只告诉操作系统在哪里找到什么,它可能会假设如何处理这些位置:例如缓存可以随意丢弃,文档必须保存.电影/图片
请记住,虽然IOS只看到缓存/其他任何东西,OSX对路径的处理方式却是不同的。
发布于 2014-04-28 08:07:53
可以将图像保存到文档目录或tmp目录中,以获取文档目录,可以使用以下内容。
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString* dd = [paths objectAtIndex:0]; //document directory path
默认情况下,“电影”、“音乐”和“图片”不会出现在目录中。您必须创建路径并放置数据文件。
NSMoviesDirectory
NSArray * paths = NSSearchPathForDirectoriesInDomains (NSMoviesDirectory,NSUserDomainMask, YES);
NSString * documentsDirectory = [paths objectAtIndex:0];
NSError * error;
if (![[NSFileManager defaultManager] fileExistsAtPath: documentsDirectory])
{
[[NSFileManager defaultManager] createDirectoryAtPath:documentsDirectory withIntermediateDirectories:NO attributes:nil error:&error];
NSString * resourceDBFolderPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"sleep.mp4"];
[[NSFileManager defaultManager] copyItemAtPath:resourceDBFolderPath toPath:[documentsDirectory stringByAppendingPathComponent:@"sleep.mp4"] error:&error];
}
else
{
NSString * resourceDBFolderPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"sleep.mp4"];
[[NSFileManager defaultManager] copyItemAtPath:resourceDBFolderPath toPath: [documentsDirectory stringByAppendingPathComponent:@"sleep.mp4"] error:&error];
}
https://stackoverflow.com/questions/23335316
复制相似问题