草庐IT

NSFileManager

全部标签

ios - iCloud:回调 NSFileManager 的 startDownloadingUbiquitousItemAtURL?

我正在使用NSFileManager的startDownloadingUbiquitousItemAtURL将文件从iCloud下载到本地副本(在这种情况下,本地还没有文件的副本)。我似乎找不到这个过程的回调。我需要回调来告诉我的应用程序请求的文件已完成下载(到本地副本),以便其他任务可以开始读取文件的内容并执行操作。我可以检查文件是否已下载。但它会涉及不断的轮询。有没有一种方法可以在不设置计时器的情况下进行轮询? 最佳答案 我相信此方法旨在与基于Apple'sdocumentation的文件协调器结合使用.所以你需要像这样使用文件

ios - NSFileManager 创建目录错误 518 NSFileWriteUnsupportedSchemeError

我正在尝试创建一个目录NSError*error=nil;NSString*BIDirectory=[[NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES)objectAtIndex:0]stringByAppendingPathComponent:@"BI"];BOOLisDir,flag=YES;//ifthedirectorydoesn'texistcreateit.if(!([[NSFileManagerdefaultManager]fileExistsAtPath:BIDirec

iphone - 为什么使用 NSFileManager 而不是仅使用 NSData 的 writeToFile :atomically: method when creating a new file?

考虑以下两个代码示例:NSData*imgData=UIImagePNGRepresentation(imgFull);NSString*documentsDirectory=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)objectAtIndex:0];NSString*fullPath=[documentsDirectorystringByAppendingPathComponent:[NSStringstringWithFormat:@"itemImg_%i.png",t

iphone - 复制时如何用 NSFileManager 覆盖文件?

我正在使用这种方法来复制文件:[fileManagercopyItemAtPath:sourcePathtoPath:targetPatherror:&error];我想覆盖一个已经存在的文件。此方法的默认行为是抛出异常/错误“文件存在”。当文件存在时。没有指定它应该覆盖的选项。那么最安全的方法是什么?我会先检查文件是否存在,然后删除它,然后尝试复制吗?这有这样的危险,即应用程序或设备在文件被删除但新文件尚未复制到该位置后的纳秒内立即关闭。然后什么都没有。也许我必须先更改新文件的名称,然后删除旧文件,然后重新更改新文件的名称?同样的问题。如果在这一纳秒内应用程序或设备关闭并且重命名没有

ios - NSFileManager.defaultManager().fileExistsAtPath 返回 false 而不是 true

这怎么可能?letexists=NSFileManager.defaultManager().fileExistsAtPath(path.absoluteString)print("exists:\(exists)")//false这是path.absoluteString//file:///Users/kuna/Library/Developer/CoreSimulator/Devices/92BD140D-5C14-43C4-80D6-904BB9594ED6/data/Containers/Data/Application/5B818832-BB19-4047-A7F8-1487

objective-c - NSFileManager 唯一的文件名

我需要一种快速简便的方法来在iOS上存储具有唯一文件名的文件。我需要在文件前面加上一个字符串,然后将生成的唯一标识符附加到末尾。我希望NSFileManager有一些方便的方法来做到这一点,但我似乎找不到它。我正在查看createFileAtPath:contents:attributes:,但不确定属性是否会给我唯一的文件名。 最佳答案 创建您自己的文件名:CFUUIDRefuuid=CFUUIDCreate(NULL);CFStringRefuuidString=CFUUIDCreateString(NULL,uuid);CFR

ios - 如何使用 Swift 代码(NSFileManager)创建目录

我在转换Objective-C代码以创建Swift目录时遇到了一些问题。objective-C:NSArray*paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);NSString*documentsDirectory=[pathsobjectAtIndex:0];//GetdocumentsfolderNSString*dataPath=[documentsDirectorystringByAppendingPathComponent:@"/MyFolder"];if(

ios - 如果目录不存在,是否有更安全的方法来创建目录?

如果目录不存在,我发现了这种创建目录的方法。但它看起来有点不稳定,我担心这可能会在1000次尝试中出错。if(![[NSFileManagerdefaultManager]fileExistsAtPath:bundlePath]){[[NSFileManagerdefaultManager]createDirectoryAtPath:bundlePathwithIntermediateDirectories:YESattributes:nilerror:NULL];}只有这个笨拙的方法fileExistsAtPath还查找文件而不仅仅是目录。但对我来说,危险的事情是:如果出现问题怎么办

ios - 如果目录不存在,是否有更安全的方法来创建目录?

如果目录不存在,我发现了这种创建目录的方法。但它看起来有点不稳定,我担心这可能会在1000次尝试中出错。if(![[NSFileManagerdefaultManager]fileExistsAtPath:bundlePath]){[[NSFileManagerdefaultManager]createDirectoryAtPath:bundlePathwithIntermediateDirectories:YESattributes:nilerror:NULL];}只有这个笨拙的方法fileExistsAtPath还查找文件而不仅仅是目录。但对我来说,危险的事情是:如果出现问题怎么办

ios - 在 iOS 设备上本地存储图像

一些iOS与照片相关的应用程序将使用该应用程序创建的图像存储在照片库以外的位置。例如,FatBooth显示了在应用启动时使用应用创建的照片的滚动列表。请注意,这些照片不会被用户明确保存到照片库中。在iOS应用程序中保存和持久保存图像的最简单方法是什么?我熟悉的唯一持久存储是NSUserDefaults和key链。但是,我从未听说过这些用于存储更大的数据,例如图像。现在我想知道CoreData是否是最简单的方法。 最佳答案 最简单的方法是将其保存在应用程序的Documents目录中,并使用NSUserDefaults保存路径,如下所示