Замена последовательности символов в именах файлов
Подскажите пожалуйста, как сохранить замену символов в имени файла
Код:
/**
* Создать программу, которая анализирует текущий каталог
* и все вложенные подкаталоги и заменяет в именах файлов
* одну последовательность символов на другую.
*/
package LR3;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class formProg3 {
formProg3() {
JFrame jfrm1 = new JFrame("Каталог файлов");
jfrm1.setSize(400, 400);
jfrm1.setLayout(null);
jfrm1.setVisible(true);
jfrm1.setResizable(false);
jfrm1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton jbtn1 = new JButton("Enter");
jbtn1.setBounds(150, 330, 80, 25);
jfrm1.add(jbtn1);
DefaultListModel<String> list = new DefaultListModel< >();
JList<String> b = new JList< >(list);
b.setBounds(0,0,400,300);
b.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
jfrm1.add(b);
JScrollPane jsp1 = new JScrollPane();
jsp1.setBounds(0, 0, 400, 300 );
jsp1.setViewportView(b);
jfrm1.add(jsp1);
JLabel jl = new JLabel();
jl.setBounds(10,300,250,20);
jl.setText("Нажмите \"Enter\" на клавиатуре");
jfrm1.add(jl);
//Кнопка по умолчанию
JRootPane rootPane = SwingUtilities.getRootPane(jbtn1);
rootPane.setDefaultButton(jbtn1);
//Вывод списка файлов в лист
jbtn1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
ArrayList<File> fileList = new ArrayList<>();
getFiles(new File("/home/atlas/Документы/Test"), fileList);
for(File file: fileList) {
list.addElement(file.getName().replace("l","d"));
}
}
});
}
//Поиск файлов
static void getFiles(File rootFile, List<File> fileList) {
if (rootFile.isDirectory()) {
File[] directoryFiles = rootFile.listFiles();
if (directoryFiles != null) {
for (File file: directoryFiles) {
if (file.isDirectory()) {
getFiles(file, fileList);
} else {
if (file.getName().toLowerCase().endsWith(".txt")) {
fileList.add(file);
}
}
}
}
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(
new Runnable() {
@Override
public void run() {
new formProg3();
new DefaultListModel();
new JScrollPane();
new JRootPane();
}
}
);
}
}
Ответы (1 шт):
Автор решения: user420047
→ Ссылка
Если я правильно понял, чего вы хотите, то возможно это поможет:
for (File file: fileList) {
String s = file.getName().replace("l","d");
list.addElement(s);
file.renameTo(file.getParent() + File.separator + s);
}