2016-03-28 10 views
1

Wohin gehen Dateien, wenn Sie sie programmatisch löschen? Ich habe sie mit diesem Code gelöscht, aber der Papierkorb für heute ist leer. Ist es möglich, sie wiederzufinden?Wohin gehen Dateien, wenn Sie sie mit swift programmatisch löschen?

let filemgr = NSFileManager.defaultManager() 
     do{ 
      let filelist = try filemgr.contentsOfDirectoryAtPath(fontFolderPath) 
      for filename in filelist { 
       do{ try filemgr.removeItemAtPath(fontFolderPath+filename)} catch{} 
      } 
     }catch{} 

Antwort

3

Unter der URL verwandten API von NSFileManager Sie haben zwei Möglichkeiten:

  • func removeItemAtURL(_ URL: NSURL) throws

    löscht den Artikel sofort wie /bin/rm in Terminal.app und hat die gleiche Funktionalität wie removeItemAtPath.

  • func trashItemAtURL(_ url: NSURL, resultingItemURL outResultingURL: AutoreleasingUnsafeMutablePointer<NSURL?>) throws

    bewegt sich das Element in den Papierkorb-Ordner zum Standort dieses Elements in den Papierkorb über den inout Zeiger zurück.

2

Die removeItemAtPath-Methode löscht sie. Sie sind gegangen. Wenn Sie etwas in den Papierkorb verschieben möchten, müssen Sie NSWorkSpace verwenden. Sie können ein Beispiel der Bewegung ein ganzes Verzeichnis in den Papierkorb sehen hier: Move directory to trash

1

im Grunde Unixy Systeme verwalten Dateien die gleiche Art und Weise gibt es einen Verweiszähler, dass die Anzahl der harten Links ist + mal die Datei geöffnet ist ... So können Sie eine geöffnete Datei rm, und die Datei wird noch vorhanden sind, können Sie es schreiben und lesen von ihm, mit einem gültigen file descriptor oder FILE * Stream-Objekt, dann, wenn es die Datei geschlossen wird, wird tatsächlich von der Festplatte entfernt werden ...

int fd = open("somefile", O_RDWR); 
unlink("somefile"); // removes somefile from the directory listing, but not disk 
write(fd, "hello", 5); 
lseek(fd,0,SEEK_SET); // seek to start of file 
char buffer[6] = {0}; 
read(fd,buffer,5); // reads in "hello" 
close(fd); // last reference removed, file is removed. 

wenn Sie möchten, eine Datei in den Papierkorb zu verschieben, das ist eine andere Maßnahme und auf OS X und iOS

Verwandte Themen