Переименуйте файл в верхний регистр в том же каталоге, используя Java

1

Я пытаюсь переименовать файлы в том же каталоге Windows, используя Java -

Before: -

C: /Temp/abG.txt

After: -

C: /Temp/abG.txt

Я попытался использовать file.renameTo но это не сработало. Теперь я пытаюсь использовать -

Path source = file.toPath();
Files.move(source, source.resolveSibling(file.getName().toUpperCase()));

Еще не повезло. Пожалуйста помоги.

  • 3
    Это не работает, потому что имена файлов в окнах не чувствительны к регистру. Сначала вам нужно переименовать его во что-то другое (например, «WindowsIsRubbish.txt», тогда все должно быть в порядке).
Теги:
file

2 ответа

1
Лучший ответ

Наконец проблема решена.

Кажется file.renameTo отлично работает в Windows. Путь, который я упомянул, был неправильным, исправил его и работал код.

Я использовал путь как C: /Temp/Folder он должен быть C: /Temp/Folder/

1

Я не пробовал работать, но это логически должно работать.

  String newFilePath = oldFile.getAbsolutePath().replace(oldFile.getName(), oldFile.getName().toUpperCase());
  File newFile = new File(newFilePath);

  try {
    FileUtils.moveFile(oldFile, newFile);
  } catch (IOException e) {
    e.printStackTrace();
  }

Надеюсь это поможет.

  • 1
    Я бы сначала добавил проверку, если это Windows или Linux / Unix / Mac. Если это Windows, должен быть промежуточный шаг, который переименовывает файл во временное имя (я бы предложил использовать System.currentMillis() в качестве уникального имени), а затем переместил этот файл под заглавным именем. В противном случае ваш код не будет работать под Windows, так как он обрабатывает прописные и строчные буквы как один и тот же файл.
  • 0
    @ vishram0709 Спасибо, но это не сильно помогло :(
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню