Проверка открытия файла

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Проверка открытия файла

Сообщение Buddy » Пн май 16, 2022 19:44

Добрый день!
Как средствами языка можно проверить, открыт ли файл по некоторому пути? Файл - Excel-таблица. Путь может быть сетевым, а сам файл может быть открыт и на другой машине, необязательно на той, на которой запускается проверка. Нужно выяснить, не открыт ли он, и если уже открыт, выдать сообщение.
Я сделал проверку на наличие в папке с проверяемым файлом файла с именем "~$" + [имя файла], но это ненадежный способ.
Аватара пользователя
Buddy
Постоянный обитатель
 
Сообщения: 112
Зарегистрирован: Чт июн 02, 2016 16:18
Откуда: Галактика СПб
Reputation point: 11

Re: Проверка открытия файла

Сообщение KVS » Вт май 17, 2022 10:51

В теории, можно сделать так:
Код: Выделить всё
ExecProgram('powershell', 'CMD /C "openfiles /query /s ИМЯ_СЕРВЕРА /fo csv | find /I ""*.xlsx"""|Out-File -FilePath c:\открытые_файлы.txt', pfDontWait, 0)


Полученный "открытые_файлы.txt" анализировать объектом file.
KVS
 
Сообщения: 11
Зарегистрирован: Пн фев 03, 2020 11:38
Reputation point: 0

Re: Проверка открытия файла

Сообщение Den » Вт май 17, 2022 12:27

Без попытки открыть файл фиг знает как
А так ...как то так

Код: Выделить всё
   _try
  {
   OpenFile('c:\temp\123.xls',StOpen);
  }
    _Except
    On ExFileSharingViolation :{
     Message('Нарушение разделения файла!', Error);
     abort;
     exit;
    }




В документации много исключений может выбрасывать Openfile Найдете...
Den
Местный житель
 
Сообщения: 1836
Зарегистрирован: Вт мар 29, 2005 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Reputation point: 60


Вернуться в Программирование

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2