我想按文件名对所有 NSDocumentDirectory 进行排序,但文件夹应该首先按名称排序,然后所有文件都按名称排序。
在我的文档目录中,我也有很多文件和文件夹。
我有这样的数组,
_filePathsArray =[[NSFileManager defaultManager] contentsOfDirectoryAtPath:_selectedPath error:Nil];
提前致谢
我想按文件名对所有 NSDocumentDirectory 进行排序,但文件夹应该首先按名称排序,然后所有文件都按名称排序。
在我的文档目录中,我也有很多文件和文件夹。
我有这样的数组,
_filePathsArray =[[NSFileManager defaultManager] contentsOfDirectoryAtPath:_selectedPath error:Nil];
提前致谢
您可以通过以下方式按字母顺序对数组进行排序。我不确定文件夹是第一位的。
[myArray sortUsingSelector:@selector(caseInsensitiveCompare:)];
或者
sortedArray = [anArray sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
用这个。
[yourArray sortUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
对于 NSArray 试试这个。
NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"interest" ascending:YES];
[stories sortedArrayUsingDescriptors:[NSArray arrayWithObjects:descriptor,nil]];
recent = [stories copy];
下面的代码对我有帮助......感谢朋友的回复。
NSArray *fileArray = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:_selectedPath error:Nil];
_filePathsArray = [[NSMutableArray alloc]init];
NSMutableArray *fileArray1 = [[NSMutableArray alloc]init];
for(int i=0;i<[fileArray count];i++)
{
if ([[[fileArray objectAtIndex:i] pathExtension] isEqualToString:@""])
{
[_filePathsArray addObject:[fileArray objectAtIndex:i]];
}
else
{
[fileArray1 addObject:[fileArray objectAtIndex:i]];
}
}
[_filePathsArray addObjectsFromArray:fileArray1];