powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Проверить не занят файл другим процессом
9 сообщений из 9, страница 1 из 1
Проверить не занят файл другим процессом
    #39147509
JDS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробовал через
File.canWrite() - не ловит.

Попробовал через
PrintWriter out = new PrintWriter(file.getAbsoluteFile());
если файл занят, ругается то, что надо, но при этом, если файл не занят, он очищается.

Как дальше жить? )
...
Рейтинг: 0 / 0
Проверить не занят файл другим процессом
    #39147522
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDSПробовал через
File.canWrite() - не ловит.

Этот метод проецируется на chmod и виндовые атрибуты файла.

JDSПопробовал через
PrintWriter out = new PrintWriter(file.getAbsoluteFile());
если файл занят, ругается то, что надо, но при этом, если файл не занят, он очищается.

Стыдно. Стыдно не знать базовый Java API. Очень рекомендую пройти сертификацию.
Или научитесь смотреть в исходники:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    public PrintWriter(File file) throws FileNotFoundException {
        this(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file))),
             false);
    }
    ...

    public FileOutputStream(File file) throws FileNotFoundException {
        this(file, false);
    }

    public FileOutputStream(File file, boolean append) {
    ...



JDSКак дальше жить? )
Например так
...
Рейтинг: 0 / 0
Проверить не занят файл другим процессом
    #39147548
JDS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz , да стыдна )
Но спасибо, tryLock помог вроде как.
...
Рейтинг: 0 / 0
Проверить не занят файл другим процессом
    #39147552
JDS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даже не tryLock, а просто (ну да пустой catch оч. плохо):
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
...
        Boolean isLocked = true;
        
        while (isLocked) {
            try {
                FileOutputStream os = new FileOutputStream("....file_name", false);
                os.close();
                isLocked = false;
                System.out.println("Свободен");
                break;
            } catch (Exception e) {}
            
            Thread.sleep(100);
            System.out.println("Занят");
        }
...
...
Рейтинг: 0 / 0
Проверить не занят файл другим процессом
    #39147555
JDS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тфу ты, дурик блин, он же тоже чистит (
...
Рейтинг: 0 / 0
Проверить не занят файл другим процессом
    #39147557
JDS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
append -> true. заработало.
...
Рейтинг: 0 / 0
Проверить не занят файл другим процессом
    #39147563
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDSДаже не tryLock, а просто (ну да пустой catch оч. плохо):
Вы делаете мне больно своим кодом.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
        while (true) {
            try (FileOutputStream os = new FileOutputStream(file, false)) {
                System.out.println("Свободен");
                break;
            } catch (IOException e) {
                  Thread.sleep(100);
                  System.out.println("Занят: " + e.getMessage());
            }
        }
...
Рейтинг: 0 / 0
Проверить не занят файл другим процессом
    #39147566
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDSappend -> true. заработало.
Я вам на что и намекал первым ответом.
Во-первых PrintWriter не нужен.
Во-вторых есть флаг.
...
Рейтинг: 0 / 0
Проверить не занят файл другим процессом
    #39147582
JDS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczВы делаете мне больно своим кодом.
Согласен ) спасибо
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Проверить не занят файл другим процессом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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