Tag: nsfilemanager

iPhone / iPad:无法将文件夹从NSBundle复制到NSDocumentDirectory

我试图复制一个文件夹在我的NSBundle包含相当多的图像。 我试着用这些代码来做。 NSFileManager *fileManager = [NSFileManager defaultManager]; NSError *error; NSArray *paths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *documentDBFolderPath = [documentsDirectory stringByAppendingPathComponent:@"Images"]; NSString *resourceDBFolderPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Images"]; [fileManager copyItemAtPath:resourceDBFolderPath toPath:documentDBFolderPath error:&error]; 比方说,名为Test.png的文件夹中有一个图像,我想在我的button上显示图像,这是行不通的! 但是,如果我只从NSBundle复制到NSDocumentDirectory的单个图像,它的工作原理! 例: 更改 stringByAppendingPathComponent:@"Images" 至 stringByAppendingPathComponent:@"Test.png" 所以问题在于复制文件夹到NSDocumentDirectory! 我的代码是否错误? 或者不可能复制文件夹? (这意味着我必须单独复制文件)

从内存中下载并保存大量图像时的iOS内存问题(ARC)

下面的代码从一个服务器下载700多个不同大小的图像,这里的问题是内存(甚至是ARC)从不被释放,最终出现内存警告,然后应用程序退出。 我试过@autoreleasepool在这个方法,似乎没有工作。 另外我试过在不同的地方停止for循环来查看内存是否在完成后被释放,但事实并非如此。 这个方法在for循环中被调用,并接收图像url和短名称。 已经在后台线程和主线程中尝试了相同的结果(内存明智)。 -(void)saveImage:(NSString*)image name:(NSString*)imageName{ int k = 0; for (int j = 0; j < [imageName length]; j++) { if ([imageName characterAtIndex:j] == '/') { k = j; } }if (k != 0) { imageName = [imageName substringFromIndex:k+1]; } NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@", imageName]]; if ([fileManager fileExistsAtPath:fullPath]) { [fileManager removeItemAtPath:fullPath […]

从CSV数据文件创build一个自定义格式的字典数组

我创build了一个iPhone应用程序,它包含一个位置(lat,long,point)的字典数组。 我通过手动input每个值来创build数组。 myLocationArray = @[ @{ kStation : @"1", kLatitude : @( 41.656467), kLongitude : @(-81.277963) }, @{ kStation : @"2", kLatitude : @(41.657118), kLongitude : @(-81.276545) }, @{ kStation : @"3", kLatitude : @(41.658493), kLongitude : @(-81.273542) }, … 这是好的,但工程,但现在我想通过从.CSV文件获取数据编程创build此数组。 我有一个.CSV文件(TestCSV.csv),看起来像这样。 41.656467,-81.277963,27200 41.657118,-81.276545,27650 41.658493,-81.273542,28631.5 41.660728,-81.268547,30195 41.661830,-81.266065,30991 41.662828,-81.263819,31700 41.663677,-81.261962,32300 41.664578,-81.259909,32950 41.666210,-81.256312,34100 41.666921,-81.254708,34605 41.668043,-81.252191,35400 41.669044,-81.250043,36099 41.670120,-81.247495,36900 […]

NSFileManager:删除项目

问题是删除使用writeToFile:方法写的项目,我似乎无法删除它。 我试过NSFileManager,但我猜这是两种不同types的存储。 – (BOOL) removeObject: (NSString *)objectToRemove inCategory:(StorageType)category { BOOL result = NO; NSError *removeError; NSString *storageFolder = [self getCategoryFor:category]; if (objectToRemove) { NSFileManager *fileManager = [[NSFileManager alloc]init]; // Find folder NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:storageFolder]; NSString *dataPathFormated = [dataPath […]

iOS:保存iTunes资料库中可见的audio文件

我试图将一个mp3文件保存到文件可以在iTunes资源库中可见的文件夹中。 我读过的地方,如果我把它保存在NSDocumentDirectory,它会工作,但我没有尝试这个运气。 我也试过NSMusicDirectory和NSLibraryDirectory。 这是我如何保存它: NSArray *documentPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *docDirectory = [documentPath objectAtIndex:0]; NSString *savePath = [docDirectory stringByAppendingPathComponent:@"file.mp3"]; [_oneNSDataFile writeToFile:savePath atomically:YES]; 谢谢你的时间!

在Swift中使用NSFileManager和createDirectoryAtPath

我试图创build一个新的文件夹,但我不知道如何正确使用createDirectoryAtPath。 根据文档,这是正确的语法: NSFileManager.createDirectoryAtPath(_:withIntermediateDirectories:attributes:error:) 我试过这个: let destinationFolder: String = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String let deliverablePath: NSURL = NSURL.fileURLWithPath("\(destinationFolder)/\(arrayOfProjectIDs[index])")! NSFileManager.createDirectoryAtPath(deliverablePath, withIntermediateDirectories: false, attributes: nil, error: nil) 但是这给了我错误 额外的参数与“中间目录”的调用 我也尝试了很多的变化,删除参数等,但我不能让它运行没有错误。 有任何想法吗?

禁用icloud上的文件夹及其所有子文件夹的备份?

我有一个已经运行的企业应用程序,它在文档文件夹内存储了大量的文档。 我希望禁用Documents文件夹内的所有这些文档和文件夹的iCloud备份。 问题是,文件夹内的内容不断dynamic变化,为每个文件添加kCFURLIsExcludedFromBackupKey的想法听起来有点困难,因为我的代码中有多个类可以写入文档目录。 有什么办法可以禁用整个文档文件夹及其子文件夹的上传。

NSFileManager:enumeratorAtURL:向NSFileManager返回一个不同forms的URL:URLForDirectory

如果我使用NSFileManager:URLForDirectory获取我的沙箱的Application Support目录,那么我找回以下URL: file://localhost/var/mobile/Applications/EA80DE91-394C-4EAB-B269-1081C859BB0F/Library/Application%20Support/ 但是,如果我使用NSFileManager:enumeratorAtURL来search目录,我找回了表单的URL: file://localhost/private/var/mobile/Applications/EA80DE91-394C-4EAB-B269-1081C859BB0F/Library/Application%20Support/ 这是我造成的问题,因为我正在做urlsearch/replace操作和差异导致不匹配。 我在之前的其他地方遇到过这种差异,然后我的解决scheme是使用URL(使用NSURL:path )而不是原始URL的path,但是在这种情况下不会生效,因为path是: /var/mobile/Applications/EA80DE91-394C-4EAB-B269-1081C859BB0F/Library/Application Support /private/var/mobile/Applications/EA80DE91-394C-4EAB-B269-1081C859BB0F/Library/Application Support/ 我想要做的是这样的:我可以在我的应用程序支持目录中具有相同的名称,但位置不同的任何数量的文件,我需要提取相对于应用程序支持目录的path。 即如果我有以下 /Application Support/abc/file.dat /ApplicationSupport/abc/def/file.dat 我想能够提取“abc”和“abc / def”。 我正在做这个使用下面的代码: NSArray *keys = [NSArray arrayWithObject:NSURLIsRegularFileKey]; NSDirectoryEnumerator *dirEnumerator = [self.fileManager enumeratorAtURL:[MyManager appSupportDirectory] includingPropertiesForKeys:keys options:NSDirectoryEnumerationSkipsHiddenFiles errorHandler:nil]; for (NSURL *url in dirEnumerator) { if ( NSOrderedSame == [[url lastPathComponent] caseInsensitiveCompare:kFilename]) { NSString *appSupportPath = [[MyManager appSupportDirectory] path]; […]

iOS文件名中允许使用哪些字符?

我正在寻找一种方法来确保一个string可以用作iOS下的文件名。 我目前在删除不兼容字符的代码部分。 我想知道如果我做对了。 NSString *filename = @"A file name"; fileName = [fileName stringByTrimmingCharactersInSet: [NSCharacterSet controlCharacterSet]]; fileName = [fileName stringByTrimmingCharactersInSet: [NSCharacterSet newlineCharacterSet]]; 我也想知道是否已经有一个方法来validation一个string作为文件名。 感谢您的build议!

NSFileManager监视目录

你将如何监视NSFileManager的目录。 我希望能够检测到当我的应用程序正在运行时,文件被删除/添加到我的文档目录中。 先谢谢您的帮助。