Fix IllegalArgumentException: Folder parameter must be a valid folder

This commit is contained in:
huangyuhui 2018-03-05 20:36:38 +08:00
parent a03e3fea12
commit eb1a109afc
3 changed files with 7 additions and 3 deletions

View File

@ -127,7 +127,8 @@ public final class MainPage extends StackPane implements DecoratorPage {
Controllers.dialog(Launcher.i18n("login.empty_username")); Controllers.dialog(Launcher.i18n("login.empty_username"));
else { else {
FileChooser chooser = new FileChooser(); FileChooser chooser = new FileChooser();
chooser.setInitialDirectory(repository.getRunDirectory(id)); if (repository.getRunDirectory(id).isDirectory())
chooser.setInitialDirectory(repository.getRunDirectory(id));
chooser.setTitle(Launcher.i18n("version.launch_script.save")); chooser.setTitle(Launcher.i18n("version.launch_script.save"));
chooser.getExtensionFilters().add(OperatingSystem.CURRENT_OS == OperatingSystem.WINDOWS chooser.getExtensionFilters().add(OperatingSystem.CURRENT_OS == OperatingSystem.WINDOWS
? new FileChooser.ExtensionFilter(Launcher.i18n("extension.bat"), "*.bat") ? new FileChooser.ExtensionFilter(Launcher.i18n("extension.bat"), "*.bat")

View File

@ -66,6 +66,9 @@ public final class ModpackFileSelectionPage extends StackPane implements WizardP
} }
private CheckBoxTreeItem<String> getTreeItem(File file, String basePath) { private CheckBoxTreeItem<String> getTreeItem(File file, String basePath) {
if (!file.exists())
return null;
ModAdviser.ModSuggestion state = ModAdviser.ModSuggestion.SUGGESTED; ModAdviser.ModSuggestion state = ModAdviser.ModSuggestion.SUGGESTED;
if (basePath.length() > "minecraft/".length()) { if (basePath.length() > "minecraft/".length()) {
state = adviser.advise(StringUtils.substringAfter(basePath, "minecraft/") + (file.isDirectory() ? "/" : ""), file.isDirectory()); state = adviser.advise(StringUtils.substringAfter(basePath, "minecraft/") + (file.isDirectory() ? "/" : ""), file.isDirectory());

View File

@ -70,10 +70,10 @@ public final class ZipEngine implements Closeable {
* modified pathName, null if you dont want this file zipped * modified pathName, null if you dont want this file zipped
*/ */
private void putDirectoryImpl(File source, String basePath, BiFunction<String, Boolean, String> pathNameCallback) throws IOException { private void putDirectoryImpl(File source, String basePath, BiFunction<String, Boolean, String> pathNameCallback) throws IOException {
File[] files; File[] files = null;
if (source.isDirectory()) if (source.isDirectory())
files = source.listFiles(); files = source.listFiles();
else else if (source.isFile())
files = new File[] { source }; files = new File[] { source };
if (files == null) if (files == null)