我在应用中有一个按钮,单击该按钮会导致打开一个对话框。然后,用户选择一个文件夹,单击“确定”,然后该应用程序将显示该文件夹中的PDF文件数。
我在下面实现了以下代码。如何扫描文件夹中的PDF文件数量?
- (IBAction)selectPathButton:(NSButton *)sender {
// Loop counter.
int i;
// Create a File Open Dialog class.
NSOpenPanel* openDlg = [NSOpenPanel openPanel];
// Set array of file types
NSArray *fileTypesArray;
fileTypesArray = [NSArray arrayWithObjects:@"pdf", nil];
// Enable options in the dialog.
[openDlg setCanChooseFiles:YES];
[openDlg setAllowedFileTypes:fileTypesArray];
[openDlg setAllowsMultipleSelection:TRUE];
// Display the dialog box. If the OK pressed,
// process the files.
if ( [openDlg runModal] == NSOKButton ) {
// Gets list of all files selected
NSArray *files = [openDlg URLs];
// Loop through the files and process them.
for( i = 0; i < [files count]; i++ ) {
}
NSInteger payCount = [files count];
self.payStubCountLabel.stringValue = [NSString stringWithFormat:@"%ld", (long)payCount];
}
}
答案 0 :(得分:1)
获取路径
下的文件和目录[NSFileManager]- (NSArray *)contentsOfDirectoryAtPath:(NSString *)path error:(NSError **)error;
获取路径和子路径下的文件和目录
[NSFileManager]- (NSArray *)subpathsOfDirectoryAtPath:(NSString *)path error:(NSError **)error;
然后过滤掉pdf文件。
NSMutableArray *pdfFiles = [NSMutableArray array];
for(NSString *fileName in files) {
NSString *fileExt = [fileName pathExtension];
if([fileExt compare:@"pdf" options:NSCaseInsensitiveSearch] == NSOrderSame) {
[pdfFiles addObject:fileName];
}
}
现在你想要的是pdfFiles。
NSUInteger pdfFilesCount = [pdfFiles count];
如果您只想要计算pdf文件,只需使用带forin循环的变量。