mirror of
https://github.com/octopusYan/alist-gui.git
synced 2024-11-21 19:56:41 +08:00
fix: 修复在AList运行时更新会报错“该文件正在被使用”的问题
This commit is contained in:
parent
96274f6952
commit
09f515025c
@ -41,7 +41,7 @@ public class Application extends javafx.application.Application {
|
|||||||
long delay = 0L;
|
long delay = 0L;
|
||||||
// 更新重启检查
|
// 更新重启检查
|
||||||
File upgradeFile = new File(Constants.DATA_DIR_PATH + File.separator + new Gui().getReleaseFile());
|
File upgradeFile = new File(Constants.DATA_DIR_PATH + File.separator + new Gui().getReleaseFile());
|
||||||
logger.error("{}{}{}", Constants.DATA_DIR_PATH, File.separator, new Gui().getReleaseFile());
|
// logger.error("{}{}{}", Constants.DATA_DIR_PATH, File.separator, new Gui().getReleaseFile());
|
||||||
if (upgradeFile.exists()) {
|
if (upgradeFile.exists()) {
|
||||||
logger.error("upgradeFile.exists");
|
logger.error("upgradeFile.exists");
|
||||||
FileUtil.del(upgradeFile);
|
FileUtil.del(upgradeFile);
|
||||||
@ -165,7 +165,7 @@ public class Application extends javafx.application.Application {
|
|||||||
instanceCheckLatch.countDown();
|
instanceCheckLatch.countDown();
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
logger.error(STR."====\{instanceId}====");
|
logger.debug(STR."====\{instanceId}====");
|
||||||
try (
|
try (
|
||||||
Socket clientSocket = serverSocket.accept();
|
Socket clientSocket = serverSocket.accept();
|
||||||
BufferedReader in = new BufferedReader(
|
BufferedReader in = new BufferedReader(
|
||||||
|
@ -143,24 +143,21 @@ public class AListManager {
|
|||||||
ConsoleLog.info(getText("alist.status.stop"));
|
ConsoleLog.info(getText("alist.status.stop"));
|
||||||
if (!running.get()) {
|
if (!running.get()) {
|
||||||
ConsoleLog.warning(getText("alist.status.stop.stopped"));
|
ConsoleLog.warning(getText("alist.status.stop.stopped"));
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
util.destroy();
|
util.destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
static ChangeListener<Boolean> restartListener;
|
static ChangeListener<Boolean> restartListener = (_, _, run) -> {
|
||||||
|
if (run) return;
|
||||||
|
running.removeListener(AListManager.restartListener);
|
||||||
|
start();
|
||||||
|
};
|
||||||
|
|
||||||
public static void restart() {
|
public static void restart() {
|
||||||
if (!running.get()) {
|
if (!running.get()) {
|
||||||
start();
|
start();
|
||||||
} else {
|
} else {
|
||||||
stop();
|
stop();
|
||||||
|
|
||||||
restartListener = (_, _, run) -> {
|
|
||||||
if (run) return;
|
|
||||||
running.removeListener(restartListener);
|
|
||||||
start();
|
|
||||||
};
|
|
||||||
running.addListener(restartListener);
|
running.addListener(restartListener);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -194,7 +191,7 @@ public class AListManager {
|
|||||||
//============================={ private }====================================
|
//============================={ private }====================================
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO 点击开始时检查 aList 执行文件
|
* 点击开始时检查 aList 执行文件
|
||||||
*/
|
*/
|
||||||
private static boolean checkAList() {
|
private static boolean checkAList() {
|
||||||
if (new File(Constants.ALIST_FILE).exists()) return true;
|
if (new File(Constants.ALIST_FILE).exists()) return true;
|
||||||
@ -216,6 +213,11 @@ public class AListManager {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 开始下载AList
|
||||||
|
*
|
||||||
|
* @param version 下载版本号
|
||||||
|
*/
|
||||||
private static void showDownload(String version) {
|
private static void showDownload(String version) {
|
||||||
String content = STR."""
|
String content = STR."""
|
||||||
\{getText("msg.alist.download.notfile")}
|
\{getText("msg.alist.download.notfile")}
|
||||||
|
@ -17,6 +17,7 @@ import cn.octopusyan.alistgui.view.alert.AlertUtil;
|
|||||||
import cn.octopusyan.alistgui.view.alert.builder.AlertBuilder;
|
import cn.octopusyan.alistgui.view.alert.builder.AlertBuilder;
|
||||||
import javafx.application.Platform;
|
import javafx.application.Platform;
|
||||||
import javafx.beans.property.*;
|
import javafx.beans.property.*;
|
||||||
|
import javafx.beans.value.ChangeListener;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -144,8 +145,13 @@ public class AboutViewModule extends BaseViewModel {
|
|||||||
Platform.runLater(() -> {
|
Platform.runLater(() -> {
|
||||||
switch (app) {
|
switch (app) {
|
||||||
case AList _ -> {
|
case AList _ -> {
|
||||||
// 下载完成后,解压并删除文件
|
if(AListManager.isRunning()) {
|
||||||
DownloadUtil.unzip(app);
|
AListManager.stop();
|
||||||
|
AListManager.runningProperty().addListener(updateListener);
|
||||||
|
} else {
|
||||||
|
// 下载完成后,解压并删除文件
|
||||||
|
DownloadUtil.unzip(app);
|
||||||
|
}
|
||||||
// 设置应用版本
|
// 设置应用版本
|
||||||
aListVersion.setValue(aListNewVersion.getValue());
|
aListVersion.setValue(aListNewVersion.getValue());
|
||||||
AListManager.restart();
|
AListManager.restart();
|
||||||
@ -163,4 +169,12 @@ public class AboutViewModule extends BaseViewModel {
|
|||||||
}).execute();
|
}).execute();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static final ChangeListener<Boolean> updateListener = (_, _, run) -> {
|
||||||
|
if (!run) {
|
||||||
|
// 下载完成后,解压并删除文件
|
||||||
|
DownloadUtil.unzip(ConfigManager.aList());
|
||||||
|
}
|
||||||
|
AListManager.runningProperty().removeListener(AboutViewModule.updateListener);
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user