我单击按钮并检查NSDocumentDirectory中是否存在(.png)或其他数据。如果存在则推送视图控制器。
我试过了,
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"u0-1b.png"];
if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) {
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main_iPad" bundle:nil];
UIViewController *controller = (UIViewController *)[storyboard instantiateViewControllerWithIdentifier:@"SavedViewController"];
[self.navigationController pushViewController:controller animated:YES];
}
else
NSLog(@"file doesnt exist");
这里我给出了完整的图片名称(u1-1b.png),但是我想查看数据或扩展名(.png,或)。
答案 0 :(得分:3)
您可以使用以下代码
进行管理NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSArray *filePathsArray = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:documentsDirectory error:nil];
NSLog(@"files array %@", filePathsArray);
if(filePathsArray.count > 0)
{
// data is exist;
}
else
{
// data does not exist;
}
您可以使用以下代码
获取filePathsArray中每个对象的路径for (int i = 0 ; i < filePathsArray.count; i++)
{
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:[filePathsArray objectAtIndex:i]];
}
如果您想获得任何文件的扩展名,那么 @ Basheer_CAD 喜欢对您有所帮助。
答案 1 :(得分:3)
此方法返回文档目录中NSDictionary中的所有文件路径和扩展名,并使用它。如果要搜索子文件夹,则使用directory
参数,例如:如果文件夹mmm
中的文件通过@"/mmm"
,则传递nil
- (NSDictionary*)listOfFilesAtDirectory:(NSString*)directory
{
NSMutableDictionary *filesAtDirectory = [[NSMutableDictionary alloc] init];
NSString *documentsDir = [self documentsDirectory];
NSString *givenDirectory = [documentsDir stringByAppendingString:directory];
NSError *searchErr = nil;
NSArray *arrFiles = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:givenDirectory
error:&searchErr];
if(!searchErr)
{
for(NSString *strFileNameAndExtension in arrFiles)
{
NSString *strFilePath = [givenDirectory stringByAppendingPathComponent:strFileNameAndExtension];
[filesAtDirectory setObject:strFileNameAndExtension forKey:strFilePath];
}
}
else
{
NSLog(@"Error reading files in this directory: %@, \n Error description:%@", directory, searchErr.description);
}
return filesAtDirectory;
}
以防这是documentsDirectory方法
- (NSString*)documentsDirectory
{
NSString *strRootPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
return strRootPath;
}