0

ここで明らかな何かが欠けているに違いありませんが、答えが見つからないようです。基本的に、アプリのドキュメント ディレクトリにファイルを書き込むコードがありました。そのコードは次のようになります

- (NSString *)applicationDocumentsDirectory {
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    return documentsDirectory;
}

// 別のメソッドでの実際の書き込みコード

NSString *manifestPath = @"manifest.txt";
[manifestData writeToFile:manifestPath options:NSDataWritingAtomic error:&error];

したがって、これは正常に機能します。ここで、ドキュメント ディレクトリ内に新しいフォルダーを作成し、そのフォルダーに書き込みたいと考えています。したがって、新しいフォルダーを作成するには、次のようにします。

NSFileManager *fileManager = [NSFileManager defaultManager];

BOOL isDir;
NSString *directoryPath = [[self applicationDocumentsDirectory] stringByAppendingPathComponent:@"testDir"];
NSError *error = nil;
if (![fileManager fileExistsAtPath:directoryPath isDirectory:&isDir]) {
    if (!isDir) {
        [fileManager createDirectoryAtPath:directoryPath withIntermediateDirectories:NO attributes:nil error:&error];
    }
}

その部分はうまく機能します。

機能しない部分は、新しい manifestPath を作成してこのディレクトリに移動し、そのディレクトリに書き込む場合です。私はもう試した

NSString *manifestPath = [[[self applicationDocumentsDirectory] stringByAppendingPathComponent:directoryPath] stringByAppendingPathComponent:@"manifest.txt"]];

また

NSString *manifestPath = [[self applicationDocumentsDirectory] stringByAppendingPathComponent:[NSString stringWithFormat:@"%@/manifest.txt", directoryPath];

パスやディレクトリの動作に何か欠けていますか? Cocoa エラー 4 が発生し続けます。パスを印刷すると、パスも正しいように見えます。(iOSシミュレータディレクトリ/testDir/manifest.txt)

ここで何か不足していますか?ありがとう。

4

1 に答える 1

1

ドキュメント ディレクトリ パスをそれ自体に追加し続けているようです。あなたの例directoryPathでは、すでにドキュメントのディレクトリパスが含まれています。するだけです[directoryPath stringByAppendingPathComponent:@"manifest.txt"]

于 2013-03-01T23:03:30.920 に答える