Ich habe eine Anwendung für iOS erstellt, die wie ein Dokument-Viewer funktioniert, in dem ich Dokumente anzeigen kann und es wie Charme funktioniert. Ich listet die Dateien in einer Tabellenansicht auf und hat die Swipe-Funktion zum Löschen der Dateien und das Löschen einzelner Dateien erhalten. Ich habe die Mehrfachauswahl auch während der Bearbeitung aktiviert. Die Tabellenansichtszeilen werden ausgewählt, aber ich bin mir nicht sicher, wie die ausgewählten Dateien aus dem NSDirectory gelöscht werden. Kann jemand helfen ?Löschen mehrerer Dateien aus dem NSDirectory
Ich habe dies in didSelectRowForIndexPath:
if (self.tableView.isEditing)
{
[_selectedRows arrayByAddingObject:[self.tableView indexPathsForSelectedRows]];
}
Ans diese Einstellung, wenn Löschtaste gedrückt wird,
- (void)deleteButton:(id)sender
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
for (id object in _selectedRows) {
UITableViewCell *selectedCell = [self.tableView cellForRowAtIndexPath:object];
NSString *cellText = selectedCell.textLabel.text;
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fileName =[NSString stringWithFormat:@"/Inbox/"];
NSString *allFilesPath = [documentsDirectory stringByAppendingPathComponent:fileName];
NSString *theactualFilePath = [allFilesPath stringByAppendingPathComponent:cellText];
NSError *error;
_success = [[NSFileManager defaultManager] removeItemAtPath:theactualFilePath error:&error];
}
}
Dies ist, wie ich die Tabellenansicht Zellen Bestücken
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
if (cell == nil) {
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"Cell"];
}
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSLog(@"paths :%@",paths);
textlabel = [[UILabel alloc] initWithFrame:CGRectMake(15,0, 250, 70)];
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fileName =[NSString stringWithFormat:@"/Inbox/"];
NSString *allFilesPath = [documentsDirectory stringByAppendingPathComponent:fileName];
if([[userDefaults objectForKey:@"searchON"] isEqualToString:@"yes"]) {
NSString *theFileName = [[_filePathsArrayCopy objectAtIndex:indexPath.row] lastPathComponent] ;
textlabel.text = theFileName;
}
else {
NSString *theFileName = [[_filePathsArray objectAtIndex:indexPath.row] lastPathComponent] ;
textlabel.text = theFileName;
}
[cell.contentView addSubview:textlabel];
return cell;
}
... können Sie nicht einfach die Methode abstrahieren, die Sie verwenden, um eine einzelne Datei zu löschen, ziehen Sie alle ausgewählten Dateien in ein NSArray, und durchlaufen Sie das Aufrufen der Löschmethode ??? –
Ich habe das versucht, und leider werden alle Dateien gelöscht. Ich werde den Code posten. –
bitte tun, scheint wie ein einfacher Fehler –