Java - 重命名重复文件而不是选定文件

时间:2014-03-13 16:06:17

标签: java html file file-io

背景 - 我有一个将.html表文件转换为.csv文件的脚本TableToCSV,但是它要求我们通过控制台输入xyz.html。但是所选的文件并不总是带有.html扩展名,它们通常都有.xls - 尽管里面的内容是.html。所以我希望我的程序复制所选文件,然后制作一个副本(或一个临时文件),可以存储在C:\ Dtemp \中,然后最后将它从xyz.xls重命名为xyz.html

目前,它将所选文件重命名为xyz.html。

这是我的代码

final JFileChooser  fileDialog = new JFileChooser();
    JButton btnInputFile = new JButton("Input File");
    btnInputFile.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            //other code
            int returnVal = fileDialog.showOpenDialog(rootPane);
            if (returnVal == JFileChooser.APPROVE_OPTION) {
               java.io.File file = fileDialog.getSelectedFile();

               String name = file.getName();
               name = name.substring(0, name.lastIndexOf("."));
               name += ".html";
               File newFile = new File(file.getParentFile(), name);
               if (file.renameTo(newFile)) {
                   try {
                    TableToCSV tableToCSV = new TableToCSV(newFile, ',', '\"', '#', CSV.UTF8Charset );
                    System.out.println("action");
                } catch (IOException e) {
                    e.printStackTrace();
                }

            //other code

1 个答案:

答案 0 :(得分:0)

目前,您的代码会将输入文件显式重命名为新名称(file.renameTo(newFile))。如果你想复制文件,为什么不将“文件”复制到“newFile”。你必须自己复制(阅读file并撰写newFile

(您可能想要检查输入文件的第一行,以确保它确实是一个html文件(通过查看内容)。