КодаSWT падение файла: определить папки
Я пытаюсь добавить функциональность падения к моей программе, так что пользователи могут перетаскивать файлы из Windows. Поэтому я реализовал интерфейс SWT DropTargetListener
и добавил SWT DropTarget
к моему SWT-управлению.
public class MyFileDrop implements DropTargetListener {
public MyFileDrop(final Control control) {
addDropTarget(control);
}
private void addDropTarget(final Control control) {
final DropTarget dropTarget = new DropTarget(control, DND.DROP_COPY | DND.DROP_DEFAULT);
dropTarget.setTransfer(new Transfer[] { FileTransfer.getInstance() });
dropTarget.addDropListener(this);
}
@Override
public void drop(final DropTargetEvent event) {
String[] fileNames = (String[]) event.data;
for (final String fileName : fileNames) {
System.out.println(fileName);
}
}
// other DropTargetListener methods [...]
}
Если я перетащил папку из проводника Windows в свой элемент управления, имя папки будет распечатано. Но все файлы внутри этой упавшей папки не указаны.
Пример
папка1
- subfile1.png
- subfile2.exe
file1.png
file2.exe
Если я выбираю folder1
, file1
и file2
и перетащите его в свою программу, это является выход:
path/to/folder1
path/to/file1.png
path/to/file2.exe
Вопросы
Почему не файлы внутри папки упал в программе? Как я могу архивировать, что эти файлы также удалены?
Как я могу установить файлы отдельно от папки?
С уважением winklerrr
Это похоже на поведение проводника Windows, находящегося вне контроля SWT-кода. Цель снижения только получает то, что источник хочет дать. –
Вы перетащили три элемента, папку и два файла. Это то, что вы видите в своем коде. Если вы хотите получить рекурсивные файлы, вам придется это сделать самостоятельно. Вы можете различать файлы и папки с помощью 'Files # isDirectory (Path)' и 'Files # isRegularFile (Path)'. – Baz