Предыстория. У меня есть сценарий TableToCSV, который преобразует файл таблицы.html в CSV файл, однако для этого требуется ввести 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
В настоящее время ваш код явно переименовывает ваш входной файл в новое имя (file.renameTo(newFile)
). Iv вы хотите скопировать файл, почему бы вам не скопировать "файл" на "newFile". Вы должны сами сделать копию (чтение в file
и запись newFile
)
(Возможно, вы захотите проверить первую строку входного файла, чтобы убедиться, что это действительно html файл (просмотрев контент).