Проверка файла на "открытый"

Lollipop

Client
Регистрация
06.09.2012
Сообщения
271
Благодарностей
27
Баллы
28
Суть такая:
Данные для проекта берутся из таблицы .xls
Нужно сделать проверку на то, чтобы перед началом работы этот файл был закрыт. Иначе выйти...

+ Как корректно принудительно сбрасывать буфер привязанного файла списка (или таблицы) на запись, а то не понятно, когда ZP это делает
(в экшенах сохранить в файл видел, но зачем там еще раз путь прописывать....)


UPD: Решение:
нашел такой код:
File file = new File(fileName);
FileChannel channel = new RandomAccessFile(file, "rw").getChannel();
// Get an exclusive lock on the whole file
FileLock lock = channel.lock();
try {
lock = channel.tryLock();
// Ok. You get the lock
} catch (OverlappingFileLockException e) {
// File is open by someone else
} finally {
lock.release();
}
Он чета не работает, может кто разберется

Сделал так: -
экшеном Файл->Переместить файл
пытаемся его переместить - там соответственно - удача/неудача, делаем выводы, если удача - не забыть кинуть файл обратно
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 714
Баллы
113
Сохранение происходит автоматически, если указана в свойствах списка/таблицы галка "сохранять изменения".
Я вообще никогда не использую экшен "Сохранить в файл".
Но если это надо, то прописывайте адрес)

Насчет первого пункта ничего не подскажу.
Закрывайте таблицы )))
 
  • Спасибо
Реакции: Lollipop

Lollipop

Client
Регистрация
06.09.2012
Сообщения
271
Благодарностей
27
Баллы
28
Поясните пожалуйста, в какой момент происходит запись в файл.
В проекте на запись идет 4 таблицы и один список.
Все привязано к файлам в описании таблиц, галка сохранить - стоит.
пока только в отладке, записывает как-то хаотично - то пишет, то не пишет.
Ставил принудительную запись в файл - на большом цикле - вообще файлы обнуляет.
Перешел на формат записи .xls не помогает.
Ставил экшен - "таблица -> привязать к файлу"
Кажется не было этого на 4.1.
....
запустил недавно сделанный проект - там раньше было всё нормально - сейчас при, записи пишет пустую строку через одну.

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

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)