0

NSArraysiPhoneアプリケーションのDocumentsフォルダに次のファイルを書き込む必要があります。次回は、前のファイルを上書きするのではなく、新しいファイルを作成する必要があります。

私はこのように試しましたが、それは書き込みdoc0doc1

allDocs他の場所でNSArray宣言されています。

どうしたの?ありがとうございました!

 NSString *myDoc;
 NSString *temp;

  for (int i = 0; i < [allDocs count]; ++i){
    NSFileManager* fileMgr = [NSFileManager defaultManager];
    myDoc = [NSString stringWithFormat:@"doc%d.dat", i];
    NSString* currentFile = [documentsDirectory stringByAppendingPathComponent:myDoc];
    BOOL fileExists = [fileMgr fileExistsAtPath:currentFile];
    if (fileExists == NO){
        temp = [NSString stringWithFormat:@"doc%d.dat", i];
        break;
    } else {
        temp = [NSString stringWithFormat:@"doc%d.dat",i++];
        break;
    }
}

NSString *myArray = [documentsDirectory stringByAppendingPathComponent:myDoc];

NSMutableArray *myMutableArray = [[NSMutableArray alloc] initWithContentsOfFile: myArray];

if(myMutableArray == nil)

{

    myMutableArray = [[NSMutableArray alloc] initWithCapacity:10];

    myMutableArray = anotherArray; 
} 

[myMutableArray writeToFile:myArray atomically:YES];
4

2 に答える 2

2

ファイルが見つかるかどうかにかかわらず、毎回最初の繰り返しで for ループから抜け出します。falseにiなるまで値を増やしてループする必要があります。fileExists

- (BOOL) workFileExists:(NSString *)name {
    NSFileManager *fm = [NSFileManager defaultManager];
    NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
    NSString *filename = [name stringByAppendingString:@".swrk"];

    return [fm fileExistsAtPath:[path stringByAppendingPathComponent:filename]];
}

- (NSString *)uniqueUntitledName {
    NSString *untitled = @"Untitled";
    NSString *name = untitled;
    int i = 1;
    while ([self workFileExists:name]) {
        name = [NSString stringWithFormat:@"%@%d", untitled, i];
        i++;
    }
    return name;
}
于 2012-06-07T14:55:20.907 に答える
1
UIImage *imageForShare = [UIImage imageNamed:@"anyImage.jpg"];
NSString *stringPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0]stringByAppendingPathComponent:@"New Folder"];
// New Folder is your folder name
NSError *error = nil;

 //in this method you are checking the path is exist or not for Folder Name
if (![[NSFileManager defaultManager] fileExistsAtPath:stringPath])
[[NSFileManager defaultManager] createDirectoryAtPath:stringPath withIntermediateDirectories:NO attributes:nil error:&error];

//now checking the image name already exist or not

NSString *fileName = [stringPath stringByAppendingFormat:@"/image.jpg"];
if (![[NSFileManager defaultManager] fileExistsAtPath:fileName])
{
  NSLog(@"Path is available.");
  NSData *data = UIImageJPEGRepresentation(imageForShare, 1.0);
  [data writeToFile:fileName atomically:YES];
}
else
{
    NSLog(@"Path doesn't exist, same name of image is already exist.");
}

ありがとうございました!!

于 2012-06-07T15:44:49.617 に答える