-CodeSWT-Datei ablegen: identifizieren Ordner
Ich versuche Drop-Funktionalität zu meinem Programm hinzuzufügen, so dass Benutzer können Dateien aus dem Windows per Drag & Drop. Deshalb habe ich die SWT DropTargetListener
Schnittstelle implementiert und eine SWT DropTarget
zu meiner SWT Steuerung hinzugefügt.
Wenn ich einen Ordner aus Windows Explorer in mein Steuerelement ziehen und ablegen, wird der Ordnername ausgedruckt. Alle Dateien in diesem Ordner werden jedoch nicht aufgelistet.
Beispiel
folder1
- subfile1.png
- subfile2.exe
file1.png
file2.exe
Wenn ich folder1
wählen, file1
und file2
und ziehe es in mein Programm der Ausgang ist:
path/to/folder1
path/to/file1.png
path/to/file2.exe
Fragen
Warum nicht die Dateien in den Ordner auf das Programm gefallen? Wie kann ich archivieren, dass diese Dateien auch gelöscht werden?
Wie kann ich die Dateien von dem Ordner unterscheiden?
Grüße winklerrr
Dies scheint über das Verhalten von Windows Explorer zu sein, die außerhalb der Kontrolle des SWT-Codes ist. Das Drop-Ziel erhält nur, was die Quelle ihm geben will. –
Sie haben drei Elemente, einen Ordner und zwei Dateien gezogen. Das sehen Sie in Ihrem Code. Wenn Sie Dateien rekursiv abrufen möchten, müssen Sie dies selbst tun. Sie können zwischen Dateien und Ordnern unterscheiden, indem Sie 'Files # isDirectory (Path)' und 'Files # isRegularFile (Path)' verwenden. – Baz