powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Ожидание разблокировки файла (аналог юниксовского F_SETLKW)
5 сообщений из 5, страница 1 из 1
Ожидание разблокировки файла (аналог юниксовского F_SETLKW)
    #38854219
Vasiliy_Kashkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как в программе на C# ожидать разблокировки файла, заблокированного через FileStream.Lock? Есть ли какой-нибудь метод, работающий аналогично юниксовскому fcntl(fd,F_SETLK W ,&lock)?
...
Рейтинг: 0 / 0
Ожидание разблокировки файла (аналог юниксовского F_SETLKW)
    #38854227
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например, периодически пробовать открывать его для записи.
...
Рейтинг: 0 / 0
Ожидание разблокировки файла (аналог юниксовского F_SETLKW)
    #38854282
Vasiliy_Kashkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
            FileStream stream;
            while (true)
            {
                try
                {
                    stream = File.Open("myfile.txt", FileMode.Append);
                }
                catch (IOException ex)
                {
                    Console.WriteLine("Ждём освобождения");
                    continue;
                }

                break;
            }
 
            Console.WriteLine("Дождались");



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

Код: c#
1.
2.
3.
4.
5.
6.
7.
FileStream stream = File.Open("myfile.txt", FileMode.Open, FileAccess.Write, FileShare.Write);

Console.WriteLine("Ждём освобождения");
stream.waitUnlock();//!!!
Console.WriteLine("Дождались");

stream.Close();



где waitUnlock - моя вымышленная функция, аналог которой я хочу найти в реальности.

То, что находил в интернете, также решает эту проблему через исключения, поэтому пишу сюда. Уверен, на такой продвинутой платформе, как .NET Framework такая функция должна быть! Подсказал бы только кто, как она называется ...
...
Рейтинг: 0 / 0
Ожидание разблокировки файла (аналог юниксовского F_SETLKW)
    #38854293
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vasiliy_Kashkin Крутить цикл для ожидания чего-либо имхо не есть хорошо.это совсем не хорошо, для этого есть таймеры.

Возможно что-то есть в FileSystemWatcher, я им следил за созданием/удалением, может и для открытия/закрытия есть события, не помню.
...
Рейтинг: 0 / 0
Ожидание разблокировки файла (аналог юниксовского F_SETLKW)
    #38854433
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LockFileEx
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Ожидание разблокировки файла (аналог юниксовского F_SETLKW)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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