Муравей не в состоянии удалить некоторые файлы на окнах

Причина, по которой вы получаете две записи после обработки символа, заключается в том, что вы не полностью прочитали строку, содержащую символ.

В частности, вы используете keyboard.nextInt(); в верхней ветви и keyboard.next(); в нижней ветви. Хотя они читают следующее целое число и символ, соответственно, они не обрабатывают маркер конца строки.

Затем, когда вы достигаете вершины цикла, вы вызываете keyboard.nextLine(), который обрабатывает любые символы, встречающиеся после int (или символа в случае удаления всех), до конца маркера строки. С ожидаемым пользовательским вводом это просто пустая строка.

Чтобы это исправить, вам нужно убедиться, что вы читаете все keyboard.nextLine() в тех случаях, когда вы читаете только целые числа или один символ.

19
задан Honza 16 September 2008 в 21:40
поделиться

4 ответа

Я встретился с этой проблемой однажды. Это было, потому что файл, который я пытался удалить, был частью путь к классу для другой задачи.

14
ответ дан 30 November 2019 в 03:25
поделиться

Есть ли что-то от процесса Муравья, который содержит файлы (или каталог) открытый? Это вызвало бы ситуацию, где Вы могли удалить их после рабочего муравья, но не во время.

2
ответ дан 30 November 2019 в 03:25
поделиться

Вы не говорите, выполняется ли Ваша сборка как в настоящее время зарегистрированный пользователь. В противном случае то, что explorer.exe или другому процессу показали каталог, может заставить его быть заблокированным также. Но удаление его в том же самом процессе explorer.exe успешно выполнилось бы. Попробуйте Неблокировщик от http://ccollomb.free.fr/unlocker/ для наблюдения, каким процессам заблокировали файлы/каталоги.

3
ответ дан 30 November 2019 в 03:25
поделиться

Это зависит...

  • процесс Муравья не имеет достаточного количества полномочий удалить файлы (обычно, потому что они были созданы различным пользователем, возможно, пользователем системы). Попытайтесь выполнить свой скрипт Ant как административного пользователя, с помощью Выполнения Как.
  • Windows действительно плох при чистке блокировок файла, когда процессы умирают или уничтожаются; следовательно, Windows думает, что файл заблокирован процессом, который умер (или был уничтожен). Нет ничего, что можно сделать в этой ситуации кроме перезагрузки.
  • Заставляют лучшие инструменты осматривать Ваше состояние системы. Я рекомендую загрузить инструменты SysInternals и использовать их вместо эквивалентов Windows по умолчанию.
9
ответ дан 30 November 2019 в 03:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: