Ios 如何检查NSDocumentDirectory中是否存在数据

Ios 如何检查NSDocumentDirectory中是否存在数据,ios,iphone,objective-c,Ios,Iphone,Objective C,我单击按钮并检查NSDocumentDirectory中是否存在(.png)或其他数据。如果存在,则推送视图控制器或不推送视图控制器 我试过这个 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *filePath = [d

我单击按钮并检查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或)。

您可以使用以下代码来管理它

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]];
}
for(int i=0;i

如果您想获得任何文件的扩展名,则@Basheer\u CAD的类文件对您很有帮助。

您可以使用以下代码来管理它

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]];
}
for(int i=0;i

如果您想获得任何文件的扩展名,则@Basheer\u CAD的Like将对您有所帮助。

此方法会将NSDictionary中的所有文件路径和扩展名返回到您的文档目录中,请使用它。如果要搜索子文件夹,则使用
目录
参数,例如:如果文件夹中有文件
mmm
pass
@/mmm“
,否则pass
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方法


此方法返回文档目录中NSDictionary中的所有文件路径和扩展名,请使用它。如果要搜索子文件夹,则使用
目录
参数,例如:如果文件夹中有文件
mmm
pass
@/mmm“
,否则pass
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方法


可能重复它不是重复的。您给出的链接与问题不同,那么您的意思是什么
检查数据或扩展名(.png,…)
?您是在询问是否可以搜索.png文件的路径?可以使用扩展名而不是给定的全名(filename.png)检入该文件夹可能是重复的。它不是重复的。你给出的链接是不同的问题,那么你的意思是什么
检查数据或扩展名(.png,…)
?你是在问是否可以搜索.png文件的路径?可以使用扩展名而不是给定的全名(filename.png)+1来检查该文件夹的解释…+1来解释。。。