iPadアプリケーションには、次のファイルを含むフォルダーがあります。
1-1-xxxx.dat
1-2-xxxx.dat
...
1-999-xxxx.dat
2-1-xxxx.dat
...
...
999-999-xxxx.dat
パーツxxxx
は、ファイルの作成時に実行時に決定される文字です。各ファイルの内容は前のファイルの内容に依存するため、作成する各ファイルで、前のファイルを照会する必要があります。xxxx
問題は、 「xxxx」の部分が本質的にランダムであるため、前のファイルのプレフィックスしか知らず、部分は知らないということです。(xxxx
部分自体xxxx
は前のファイルの部分によって決定され、1-1-xxxx
ファイルにはランダムな名前が付けられます)。
ファイルにアクセスするには、最初のアプローチは次のようになります。
// For file 1-50-xxxx.dat
NSError *error = nil;
NSFileManager *fm = [NSFileManager defaultManager];
NSArray *allFiles = [fm contentsOfDirectoryAtPath:path error:&error];
for (NSString *file in allFiles) {
if ([file hasPrefix:@"1-49-"]) {
// Determine contents and name of file "1-50-xxxx.dat"
// Create file, break, etc.
}
}
// ... And repeat for many files
これは明らかに非常にすぐに非常に高価になります。指定された数値プレフィックスを持つファイルは1つしかないため、必要なファイルのパスを取得するO(1)の方法はありますか?