Я хотел удалить пробелы, которые Windows помещает в имена файлов. Я выполнил следующий код, чтобы переименовать все файлы в тестовом каталоге. Результат: все файлы исчезли. Я озадачен тем, почему.Почему метод File rename() удаляет файлы?
import java.io.*;
public class FileRenamer {
public static void main(String[] args) {
for (File file: (new File("O:\\test0")).listFiles())
file.renameTo(new File(file.getName().replaceAll("\\s","")));
System.exit(0);
}
}
Вы правы, это должно удалить любые файлы. Он может переместить их в другой каталог. –
Просто, чтобы быть ясным, это _not_ "пространства, которые Windows помещает в имена файлов". Это пробелы, которые _you_ помещают в имена файлов Windows. Сама Windows не добавляет пробелов к вашим именам файлов. Может ли ваш ответ быть более простым: не помещайте места в именах файлов в первую очередь? –
Нет, я сделал массовое переименование в Проводнике Windows. Я выбрал все файлы в каталоге, нажал F2 (который выделил основную часть имени файла (перед точкой)) и набрал «test», а затем нажал Enter. Windows переименовала их «test (1) .png», «test (2) .png» и т. Д. Обратите внимание на пробел перед «(». – John