powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Удаление файла(ов)
12 сообщений из 12, страница 1 из 1
Удаление файла(ов)
    #39653025
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, всем!

столкнулся проблемой с удалением файла.

используется WatchService, и после прочтения нового файла (оставил только StandardWatchEventKinds.ENTRY_CREATE) и обработки мне нужно удалить данный файл.
что я делаю для удаления файла
Код: java
1.
2.
3.
4.
5.
6.
7.
        
try {
      Files.deleteIfExists(Paths.get(file_path));
      System.out.println("Файл был удален успешно!");
      } catch (IOException e) {
            System.out.println(e);
}



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

как можно решит данную проблему?
...
Рейтинг: 0 / 0
Удаление файла(ов)
    #39653027
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффар
Код: java
1.
if (Files.deleteIfExists(Paths.get(file_path)))

...
как можно решит данную проблему?Как обычно - чтением документации
...
Рейтинг: 0 / 0
Удаление файла(ов)
    #39653037
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,

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

походу проблему нашел:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
try {
            Files.lines(Paths.get(file_path), StandardCharsets.UTF_8).forEach(
                    p -> sb.append(v.getParse(p).toString())
            );
            System.out.println(sb.toString());
        } catch (IOException e) {
            e.printStackTrace();
        }



здесь он не дает доступ...
...
Рейтинг: 0 / 0
Удаление файла(ов)
    #39653044
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
походу вот это и есть решение
Код: java
1.
2.
3.
4.
5.
try (Stream<String> stream = Files.lines(Paths.get(file_path),StandardCharsets.UTF_8)) {
            stream.forEach(p -> sb.append(v.getParse(p).toString()));
        } catch (IOException e) {
            e.printStackTrace();
        }
...
Рейтинг: 0 / 0
Удаление файла(ов)
    #39653065
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффарпри этом скорее всего должен вываливаться эксепшен или нет?Если функция возвращает булев результат, то отрапортовать об успешном выполнении, не проверив код возврата - действие, мягко говоря, сомнительное.
Второе. Если функция возвращает код результата, то при чём тут исключения?
...
Рейтинг: 0 / 0
Удаление файла(ов)
    #39653070
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффарпоходу вот это и есть решениеА вы точно никаких данных не потеряете???
...
Рейтинг: 0 / 0
Удаление файла(ов)
    #39653085
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovМузаффарпоходу вот это и есть решениеА вы точно никаких данных не потеряете???

что имеется ввиду? и почему такой вопрос?
...
Рейтинг: 0 / 0
Удаление файла(ов)
    #39653086
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффарчто имеется ввиду? и почему такой вопрос?Если поток будет читаться лениво, то возможна ситуация, когда файл ещё не обработан, но событие о создании - уже есть. Тогда наблюдатель попытается удалить файл и попытка окажется успешной.

P.S.
Честно говоря, не очень понимаю, что мешает по событиям создания добавлять файлы в очередь, обработчик которой будет и обрабатывать и удалять успешно обработанные файлы без всякой эвристики.
...
Рейтинг: 0 / 0
Удаление файла(ов)
    #39653090
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,

интересное решение, спасибо.
и кстати все данные на месте

З.Ы. Спасибо за ответы и направления, тему можно закрыть. обожаю этот форум! :)
...
Рейтинг: 0 / 0
Удаление файла(ов)
    #39653187
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффари кстати все данные на месте

Basil A. Sidorov,Если поток будет читаться лениво, то возможна ситуация, когда файл ещё не обработан, но событие о создании - уже есть.
...
Рейтинг: 0 / 0
Удаление файла(ов)
    #39653564
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lleming,

событие о создании есть и сразу шедулер срабатывает т.е. файл начинается считываться спустя некоторое время, чтоб избежать блокировании файла при создании т.к. файлы не такой уж маленькие... и после срабатывает чтения файла (код чтение уже выложил) потом обрабатываются данные и после этого файл удаляется...
...
Рейтинг: 0 / 0
Удаление файла(ов)
    #39653730
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МузаффарЗ.Ы. Спасибо за ответы и направления, тему можно закрыть. обожаю этот форум ! :)

это ты еще стаковерфлоу не пробовал
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Удаление файла(ов)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]