Как проследить изменения в каталоге ?

 
 
 
Сообщения:4
Вобщем прблема такая:
работаю с файлами и каталогами. Мне , прежде чем использовать файл или каталог, нужно убедиться в том, что он не пишется.
С файлом делаю просто: проверяю размер и еще раз через секунду. Если размеры совпали, то считаю что файл не пишется в данный момент.
С каталогом сложнее.
Собственно вопрос: Как отследить, пишутся ли файлы в каталог в данный момент ?

есть одна идея: написать класс и в него писать структуру каталога с размерами и датами последнего изменения. И сравнивать полученные структуры допустим через секунду.

возможно есть кто-нибудь, кто может посоветовать что-нибудь получше ?
 
 
Сообщения:2030
Во время проверки в папку кто-нибудь может начать писать. Вы не отследите эту ситуацию.
А в связи с чем возникла такая задача, можете объяснить?

Всякое решение плодит новые проблемы
 
 
Сообщения:4
я подготавливаю каталог для передачи по сети. беру хэш у содержимого. вобщем мне нельзя чтобы хэш взялся криво.
наверно буду решать проблему с помощью самописного обновлятора каталога, который будет его лочить на время записи.
 
 
Сообщения:1240
import java.io.File;


public class Test {
    public static void main(String[] args) {
        File f = new File ("C:\\ZZ\\");
        if(f.renameTo(new File("C:\\A\\AA\\"))){
            System.out.println("We can do archive...");
        } else  {
            System.out.println("We cannot do archive, files locked....");
        }
    }
}
 
 
Сообщения:1240
Убрав каталог в другое место, ты гарантированно отрубаешь возможность всем открыть и изменить файлы, пока каталог убран на время упаковки. С другой стороны, пока тебе не позакрывают файлы, ничего и никуда ты не уберешь.
 
 
Сообщения:4
Vurn, идея конечно неплохая, но, скорее всего, прога будет работать под рутом :)
а для варианта работы под юзером это неплохой вариант.
 
 
Сообщения:1240
wiy:
Vurn, идея конечно неплохая, но, скорее всего, прога будет работать под рутом :)
а для варианта работы под юзером это неплохой вариант.

Тестировал на винде под админом. Линуха не знаю. :(
 
 
Сообщения:4
Vurn, понятно. в линухе админ может все :). ограничений вобщем нету.
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет