Objective c 如何制作iOS目录?
好, 所以我有一个Cydia应用程序需要更新。我知道Cydia应用程序没有文档文件夹,所以你必须制作一个。以下是我以前在iOS 4中的制作过程(iOS 5上不起作用): 我还包括将数据库文件复制到该文件夹的代码。这不起作用(即使我通过SSH手动创建文件夹)Objective c 如何制作iOS目录?,objective-c,cydia,Objective C,Cydia,好, 所以我有一个Cydia应用程序需要更新。我知道Cydia应用程序没有文档文件夹,所以你必须制作一个。以下是我以前在iOS 4中的制作过程(iOS 5上不起作用): 我还包括将数据库文件复制到该文件夹的代码。这不起作用(即使我通过SSH手动创建文件夹) 请帮忙!谢谢。请检查。要创建文件夹,您需要createDirectoryAtPath:withIntermediateDirectories:attributes:error:尝试使用createDirectoryAtURL:withInte
请帮忙!谢谢。请检查。要创建文件夹,您需要
createDirectoryAtPath:withIntermediateDirectories:attributes:error:
尝试使用createDirectoryAtURL:withIntermediateDirectories:attributes:error:
:
createDirectoryAtURL:withintermediatedirectory:attributes:error:
在指定路径上创建具有给定属性的目录
参数
url
-指定要创建的目录的文件url。
如果要指定相对路径,必须设置
当前工作目录,然后再创建相应的
NSURL对象。此参数不能为nil
createIntermediates
-如果YES
,此方法将创建任何不存在的
父目录作为在url中创建目录的一部分。如果否
,
如果中间父目录中的任何一个发生错误,此方法将失败
不存在。如果任何中间路径
元素对应于文件而不是目录
属性
-新目录和任何新创建目录的文件属性
中间目录。您可以设置所有者和组编号,
文件权限和修改日期。如果为此指定nil
参数或忽略特定值时,将显示一个或多个默认值
如讨论中所述使用。有关密钥列表,您可以
包括在本词典中,请参见“常量”(第54页)章节列表
在属性字典中用作键的全局常量。一些
其中的键,如NSFileHFSCreatorCode和NSFileHFSTypeCode
不适用于目录
error
-输入时,指向错误对象的指针。如果发生错误,
此指针设置为包含错误的实际错误对象
信息。如果不指定,则可以为此参数指定nil
需要错误信息
返回值是
如果
目录已创建或已存在,如果发生错误,则不存在
下面是我创建目录的方法
-(void)createDirectory:(NSString *)directoryName atFilePath:(NSString *)filePath
{
NSString *filePathAndDirectory = [filePath stringByAppendingPathComponent:directoryName];
NSError *error;
if (![[NSFileManager defaultManager] createDirectoryAtPath:filePathAndDirectory
withIntermediateDirectories:NO
attributes:nil
error:&error])
{
NSLog(@"Create directory error: %@", error);
}
}
在Swift中,如果存在或创建了,则返回true
func ensureDirectoryExists(path:String) -> Bool {
if !NSFileManager.defaultManager().fileExistsAtPath(path) {
do {
try NSFileManager.defaultManager().createDirectoryAtPath(path, withIntermediateDirectories: true, attributes: nil)
} catch {
print(error)
return false
}
}
return true
}
出了什么问题,或者我可以使用哪段代码来创建目录?对,出了什么问题?你还没告诉我们。没有错误消息,也没有对故障的描述。@Daniel R Hicks:什么都没有发生。。从下面的代码粘贴后,我确实得到一个错误<代码>创建目录错误:错误域=NSCOCAERRORDOMAIN代码=513“操作无法完成。(可可错误513。)”用户信息=0x1c2650{NSFilePath=/var/mobile/Library/APPNAME,NSUnderlyingError=0x1c3520“操作无法完成。不允许的操作”}我尝试过,没有创建文件夹。。。我认为这只适用于OSx,而不是iOS?您是否使用
YES
作为与中间目录的参数:
?NSFileManager*NSFm=[NSFileManager defaultManager];[NSFm createDirectoryAtPath:@/var/mobile/Library/APPNAME”,带中间目录:是属性:无错误:无];[NSFm createDirectoryAtPath:@/var/mobile/Library/APPNAME/Documents”,带中间目录:是属性:无错误:无]
就是我使用的代码……假设/var/mobile/Library/
存在,你不需要第一次调用,只需要第二次调用。您确定您具有正确的写入权限吗?它会返回什么错误?从我的iPad上回答时,我似乎有点慢…,另一个答案似乎与此基本相同。这是我得到的错误<代码>无法完成该操作。不允许操作这可能是您需要的
func ensureDirectoryExists(path:String) -> Bool {
if !NSFileManager.defaultManager().fileExistsAtPath(path) {
do {
try NSFileManager.defaultManager().createDirectoryAtPath(path, withIntermediateDirectories: true, attributes: nil)
} catch {
print(error)
return false
}
}
return true
}