我可以获得另一个文件的目录吗?

can I get the directory of another file?

我已经为我的 java 程序创建了一个自动更新程序。但在下载结束时,它将文件下载到桌面。我可以获取程序文件在哪里并更新它?

这是我的代码:

    @Override
    public void run() {
        if(!Debug) {
            try {
                FileUtils.copyURLToFile(new URL("fileurl"), new File(System.getenv("APPDATA") + "\file.zip"));
                UnzipUtility unzip = new UnzipUtility();
                File deskfile = new File(System.getProperty("user.home") + "/Desktop/file.jar");
                if(deskfile.exists()) {
                    deskfile.delete();
                }

                unzip.unzip(System.getenv("APPDATA") + "\file.zip", System.getProperty("user.home") + "/Desktop");
                File file = new File(System.getenv("APPDATA") + "\file.zip");
                file.delete();
                Successfull = true;
            } catch (IOException e) {
                Successfull = false;
            }
            try {
                Updater.sleep(0L);
            }catch(Exception e) {
                e.printStackTrace();
            }
        }
    }

这是我的外部更新程序 jar 中的代码,我需要找到主程序目录我该怎么办?

例如,如果主程序在桌面以外的任何其他目录中,更新将始终将其下载到桌面...我需要它来更改执行命令以启动更新程序的文件

如果您的外部更新程序与您的邮件应用程序位于同一目录中,您可以使用:

System.getProperty("user.dir");

这将为您提供当前文件夹。您可以在此处找到更多详细信息:https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html

如果不是这种情况,我会看到以下选项:

  • 更新安装文件夹前询问用户
  • 将安装文件夹存储在 属性 文件 inOS 用户数据中 // 更新 jar 文件夹。

问候,WiPu