文件删除静默失败



这是一个与Bukkit有关的问题,尽管问题存在于我的实际Java代码中。

我的问题是,我试图删除球员的数据,但我无法这样做,未知的原因。Bukkit控制台没有显示任何错误。我甚至用File.getAbsolutePath()来检查我是否得到了正确的文件路径,我得到了。显示结果布尔值也导致false

@EventHandler
public void onPlayerLeave(PlayerQuitEvent event) {
    final File playerDat = new File("Hub/players/" + event.getPlayer().getName() + ".dat");
    this.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
        public void run() {
            boolean playerDeleteSuccess = playerDat.delete();
            getLogger().info("Absolute path: " + playerDat.getAbsolutePath());
            getLogger().info("Success: " + playerDeleteSuccess);
        }
    }, 10L);
}

您是否确保已经关闭了对文件的任何写/读流?据我所知,任何打开的流都会阻止文件被删除。

尝试在您的文件中使用:

final File configFile = new File(this.getDataFolder(), event.getPlayer().getName() + ".dat");
configFile.delete();

不是获取路径,而是使用此代码获取默认路径,并使用该信息删除配置。

我认为你的问题是你没有告诉bukkit查找哪个文件夹,你只告诉它文件的路径,但它不知道从哪里开始。

要在插件的data文件夹中创建一个配置文件,你可以这样做:

final File configFile = new File(this.getDataFolder(), "/Hub/players/" + event.getPlayer().getName() + ".dat");
configFile.delete(); 

在获取配置文件之前,您需要检查默认的数据文件夹。默认的数据文件夹是一个与你的插件同名的文件夹。

同样,你可能想尝试把它放在你的onDisable()方法中,看看它是否在那里工作,只是作为一个测试,尽管

相关内容

  • 没有找到相关文章

最新更新