簡體   English   中英

應用程序運行時無法創建文件

[英]Can't create file while the application running

我有一個奇怪的問題。

我有我要用於我的應用程序的路徑:

private final String PNG_PATH = "cache/plugins/sonarrtv/images/";

如果該文件夾不存在,我將創建它。 這可以正常工作,但是一旦我想在該文件夾中創建文件,它就會失敗,但是只有當我使用“ stage”命令在已部署的應用程序上運行時,它才會失敗。 如果我運行它./activator run然后它可以工作

[info] - application - FULL_PNG Path: /Users/gz/Cloud/Dev/Java/HomeDash/target/universal/stage/cache/plugins/sonarrtv/images Writable ? false
[info] - application - f Path: /Users/gz/Cloud/Dev/Java/HomeDash/target/universal/stage/cache/plugins/sonarrtv/images/247808-fanart.jpg

它說該文件夾不可寫。 我試圖通過編程將其設置為可寫,但是沒有區別。 我檢查了一下,發現我是創建的新文件夾的所有者,所以這不應該成為問題。

這是我用來創建文件夾的代碼:

File f = new File(PNG_PATH);
if (!f.exists()) {
    f.mkdirs();
}
f.setWritable(true);
f.deleteOnExit();

這里是我如何創建文件:

File f = new File(PNG_PATH + series.getSeriesId() + "-fanart.jpg");
FileUtils.copyURLToFile(new java.net.URL(poster), f);

好的,我設法找到了更好的方法。 我實際上是使用以下命令從配置中加載user.dir:

ConfigFactory.load().getString("user.dir")+"/cache/";

這適用於應用程序生命周期的每個階段。 如果對一個渴望的單身人士說該應用程序未啟動,則Play.application()。getPath()將引發錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM