Совместный доступ к файлу
Как проверить не занят ли файл другим приложением?
"Занят" - понятие относительное...
Простой эксперимент: создаем txt файл. Начинаем его редактировать NotePad'ом и, не закрывая NotPad, переименовываем файл (или вообще удаляем). Переключаемся обратно в NotPad и... ничего не происходит. Так занят был файл во время редактирования?
Так какую ситуацию надо отловить и обработать?
А дурной способ такой: попытайся удалить файл; если удалился - значит был не занят! :D
"Занят" - понятие относительное...
Простой эксперимент: создаем txt файл. Начинаем его редактировать NotePad'ом и, не закрывая NotPad, переименовываем файл (или вообще удаляем). Переключаемся обратно в NotPad и... ничего не происходит. Так занят был файл во время редактирования?
Так какую ситуацию надо отловить и обработать?
А дурной способ такой: попытайся удалить файл; если удалился - значит был не занят! :D
Занят понятие не относительное а вполне определенное...
Можно открыть файл и занять его...
А можно открыть не занимая... (NotePad)
Если тебя интересует не тот факт что какое то приложение открыло файл а то что оно заняло под свои нужды, то насколько я понимаю тут все должно быть просто ...
Если файл занят то просто так ты не сможешь до него добраться...
И следовательно при попытке открыть файл для записи будет возвращаться код ошибки...
попробуй занять файл и открыть его (запиши код ошибки)
попробуй удалить файл и открыть его (сравни полученный код ошибки если разные то поздравляю у тебя в руках код позволяющий проверить то что файл занят)
Только все это голая теория... если получится приведи плиз кусочек кода...
А те кто пишет приложения открывающие файлы и не занимающие их нас не волнуют... это будет считаться глюком их программы а не нашей...
Занят понятие не относительное а вполне определенное...
Можно открыть файл и занять его...
А можно открыть не занимая... (NotePad)
А можешь привести определение понятия "занятый файл"?
И если в одном месте твоей программы откроется определенный файл с полным доступом, то в другом месте тажа самая операция приведет к ошибке "Файл занят другим приложением". Если сам не разберешся, то могу сообщить что за функции такие (шас нет книги под рукой).
А что касается блокнота и вордпада - то они помещают содержимое файла в оперативку, то есть просто считывают содержимое и все, потом освобождают этот файл.