在 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
这显然会很快变得非常昂贵。是否有一种 O(1) 的方式来获取所需文件的路径,因为只有一个具有给定数字前缀的文件?