将文件从资源复制到文件夹

时间:2017-02-04 12:14:03

标签: java

我试图将包含26个文件(A-Z)的文件夹复制到另一个目录。到目前为止一切顺利,如果我使用IDE启动程序,一切正常。但是,如果我运行导出的jar它不起作用。我已经查看了jar,我想要复制的文件夹就在那里。

private void copyCharacterFiles() {
    for (String s : Utils.ALPHABET) {


        try {
            File source = new File("resources/characters/" + s.toUpperCase() + ".yml");
            File dest   = new File(APPLICATION_PATH + PATHSEPARATOR + "characters" + PATHSEPARATOR + s.toUpperCase() + ".yml");

            FileChannel sourceChannel = null;
            FileChannel destChannel = null;

            try {
                sourceChannel = new FileInputStream(source).getChannel();
                destChannel = new FileOutputStream(dest).getChannel();
                destChannel.transferFrom(sourceChannel, 0, sourceChannel.size());
            } finally {
                sourceChannel.close();
                destChannel.close();
            }


        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

感谢您的帮助^^

1 个答案:

答案 0 :(得分:0)

我相信你能够在你的IDE中运行它,因为你的资源有目录结构,而你在运行JAR时没有这个保证。如果您将这些资源作为类路径的一部分,那么您应该能够按照post中的答案访问资源。否则,您访问该文件的方式是相对路径,这肯定会导致一些问题。

希望有所帮助!