Refactor trash(File)
This commit is contained in:
parent
150ce19092
commit
fc73de25d7
|
@ -1,6 +1,6 @@
|
||||||
package net.filebot;
|
package net.filebot;
|
||||||
|
|
||||||
import static net.filebot.Logging.*;
|
import static net.filebot.UserFiles.*;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
@ -8,10 +8,6 @@ import java.nio.file.Files;
|
||||||
import java.nio.file.LinkOption;
|
import java.nio.file.LinkOption;
|
||||||
import java.nio.file.attribute.BasicFileAttributes;
|
import java.nio.file.attribute.BasicFileAttributes;
|
||||||
|
|
||||||
import com.apple.eio.FileManager;
|
|
||||||
import com.sun.jna.Platform;
|
|
||||||
import com.sun.jna.platform.FileUtils;
|
|
||||||
|
|
||||||
import net.filebot.util.FileUtilities;
|
import net.filebot.util.FileUtilities;
|
||||||
|
|
||||||
public enum StandardRenameAction implements RenameAction {
|
public enum StandardRenameAction implements RenameAction {
|
||||||
|
@ -201,27 +197,4 @@ public enum StandardRenameAction implements RenameAction {
|
||||||
throw new IllegalArgumentException(String.format("Cannot revert file: %s => %s", current, original));
|
throw new IllegalArgumentException(String.format("Cannot revert file: %s => %s", current, original));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void trash(File file) throws IOException {
|
|
||||||
// use system trash if possible
|
|
||||||
try {
|
|
||||||
if (Platform.isMac()) {
|
|
||||||
// use com.apple.eio package on OS X platform
|
|
||||||
if (FileManager.moveToTrash(file)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
} else if (FileUtils.getInstance().hasTrash()) {
|
|
||||||
// use com.sun.jna.platform package on Windows and Linux
|
|
||||||
FileUtils.getInstance().moveToTrash(new File[] { file });
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
debug.warning(e::toString);
|
|
||||||
}
|
|
||||||
|
|
||||||
// delete permanently if necessary
|
|
||||||
if (file.exists()) {
|
|
||||||
FileUtilities.delete(file);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,7 @@ import java.awt.FileDialog;
|
||||||
import java.awt.Frame;
|
import java.awt.Frame;
|
||||||
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionEvent;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.Callable;
|
import java.util.concurrent.Callable;
|
||||||
|
@ -21,27 +22,59 @@ import java.util.logging.Level;
|
||||||
|
|
||||||
import javax.swing.JFileChooser;
|
import javax.swing.JFileChooser;
|
||||||
|
|
||||||
|
import com.apple.eio.FileManager;
|
||||||
|
import com.sun.jna.platform.FileUtils;
|
||||||
|
|
||||||
import net.filebot.mac.MacAppUtilities;
|
import net.filebot.mac.MacAppUtilities;
|
||||||
|
import net.filebot.util.FileUtilities;
|
||||||
import net.filebot.util.FileUtilities.ExtensionFileFilter;
|
import net.filebot.util.FileUtilities.ExtensionFileFilter;
|
||||||
|
|
||||||
public class UserFiles {
|
public class UserFiles {
|
||||||
|
|
||||||
|
public static void trash(File file) throws IOException {
|
||||||
|
// use system trash if possible
|
||||||
|
try {
|
||||||
|
if (isMacApp()) {
|
||||||
|
// use com.apple.eio package on OS X platform
|
||||||
|
if (FileManager.moveToTrash(file)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
} else if (FileUtils.getInstance().hasTrash()) {
|
||||||
|
// use com.sun.jna.platform package on Windows and Linux
|
||||||
|
FileUtils.getInstance().moveToTrash(new File[] { file });
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
debug.log(Level.WARNING, e::toString);
|
||||||
|
}
|
||||||
|
|
||||||
|
// delete permanently if necessary
|
||||||
|
if (file.exists()) {
|
||||||
|
FileUtilities.delete(file);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static void revealFiles(Collection<File> files) {
|
public static void revealFiles(Collection<File> files) {
|
||||||
if (isMacApp()) {
|
if (isMacApp()) {
|
||||||
for (File it : files) {
|
files.forEach(f -> {
|
||||||
MacAppUtilities.revealInFinder(it);
|
try {
|
||||||
|
FileManager.revealInFinder(f);
|
||||||
|
} catch (Exception e) {
|
||||||
|
debug.log(Level.WARNING, e::toString);
|
||||||
}
|
}
|
||||||
} else {
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// if we can't reveal the file in folder, just reveal the parent folder
|
// if we can't reveal the file in folder, just reveal the parent folder
|
||||||
files.stream().map(it -> it.getParentFile()).distinct().forEach(it -> {
|
files.stream().map(it -> it.getParentFile()).distinct().forEach(it -> {
|
||||||
try {
|
try {
|
||||||
Desktop.getDesktop().open(it);
|
Desktop.getDesktop().open(it);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
debug.log(Level.SEVERE, e.getMessage(), e);
|
debug.log(Level.WARNING, e::toString);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
private static FileChooser defaultFileChooser = getPreferredFileChooser();
|
private static FileChooser defaultFileChooser = getPreferredFileChooser();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue