none
Как запретить изменение занятого файла. RRS feed

Ответы

  • Необходимость блокировки файла (или его части) указывается открывающим его приложением. Если приложение не запрашивает блокировку файлов, открываемых по сети, то запретить у вас не получится.


    Слава России!

    • Предложено в качестве ответа Vector BCOModerator 14 января 2016 г. 12:32
    • Помечено в качестве ответа Vector BCOModerator 15 января 2016 г. 7:39
    13 января 2016 г. 9:50
  • Для 6 человек вы можете разработать правила согласования работ. Если правила достаточно формальные, то можно сделать запускающий командный файл, который будет выставлять "флаг" блокировки конкретного файла, или перемещать файл и т.п.

    Сазонов Илья

    https://isazonov.wordpress.com/

    • Предложено в качестве ответа Vector BCOModerator 14 января 2016 г. 12:32
    • Помечено в качестве ответа Vector BCOModerator 15 января 2016 г. 7:39
    14 января 2016 г. 12:12
    Модератор

Все ответы

  • Вообще-то открытие файла на шаре на запись (режим по умолчанию для большинства приложений) делает невозможным его редактирование из других приложений. ОС на файл-сервере просто блокирует его на запись (хотя открытие только на чтение может быть возможным).

    Опишите подробно сценарий, с которым вы столкнулись.


    Evgeniy Lotosh // MCSE: Server infrastructure, MCSE: Messaging

    13 января 2016 г. 6:51
  • Наша основная рабочая программа ArcMap.
    С ней работает несколько пользователей по сети.
    Проблема в том, что если один и тот-же shape-файл, редактируется по сети двумя пользователями, при сохранении изменений, пользователи не видят, что файл открыт кем-то ещё.
    Сервер для этого случая и приобретался, что-бы пользователи не могли одновременно править один shape-файл, что-бы предупреждение какое-нибудь появлялось. А вот почему-то этого не происходит.

    Вот по этому я и задал этот вопрос.

    13 января 2016 г. 9:11
  • Каким образом конкретное приложение работает с файлами, зависит от самого приложения. Стандартная логика - файл открывается на запись путем вызова соответствующего API. Однако если разработчики приложения решили применить какой-то другой режим открытия файла, на уровне ОС здесь ничего не сделать. ОС просто не знает, что такой-то файл открыт на редактирование. Расположен ли при этом файл локально на ПК или на сервере, разницы нет.

    Я бы порекомендовал задать данный вопрос разработчикам приложения.


    Evgeniy Lotosh // MCSE: Server infrastructure, MCSE: Messaging

    13 января 2016 г. 9:42
  • Необходимость блокировки файла (или его части) указывается открывающим его приложением. Если приложение не запрашивает блокировку файлов, открываемых по сети, то запретить у вас не получится.


    Слава России!

    • Предложено в качестве ответа Vector BCOModerator 14 января 2016 г. 12:32
    • Помечено в качестве ответа Vector BCOModerator 15 января 2016 г. 7:39
    13 января 2016 г. 9:50
  • Господа.
    Спасибо за ответы.
    Но как-то совсем руки опустились.
    Да, последние версии ArcMap создают файлы .lock, но цена её порядка 500 тыс. рублей.
    Три миллиона, нам неоткуда взять (6 человек в отделе).
    Вот и рассчитывали, что на уровне сервера можно будет блокировать или выдавать сообщение об одновременном использовании. 

    Господа, действительно.
    А не может ли сервер отслеживать, что к определённым файлам получили доступ два пользователя, будет достаточно даже такого сообщения.


    14 января 2016 г. 11:25
  • А не может ли сервер отслеживать, что к определённым файлам получили доступ два пользователя, будет достаточно даже такого сообщения.


    Увы. ОС отслеживает все обращения к файлу, но существуют разные режимы его открытия. Блокировать доступ на запись она будет только при условии, что открывающее приложение об этом явно попросило. В вашем случае приложение открывает файл, видимо, на запись, но без блокировки аналогичного доступа для других программ. Это странный, но штатный режим, ОС здесь не вмешивается и никакие сигналы никуда не передает.

    Боюсь, вам придется применять костыли типа копирования файла на локальную машину перед редактированием. Ну, или есть альтернативы - порталы для совместного доступа к файлам, которые обладают нужной вам функциональностью. Гуглите по строчке file collaboration. Но они куда менее удобны в работе, чем файловая шара.


    Evgeniy Lotosh // MCSE: Server infrastructure, MCSE: Messaging

    14 января 2016 г. 11:48
  • Для 6 человек вы можете разработать правила согласования работ. Если правила достаточно формальные, то можно сделать запускающий командный файл, который будет выставлять "флаг" блокировки конкретного файла, или перемещать файл и т.п.

    Сазонов Илья

    https://isazonov.wordpress.com/

    • Предложено в качестве ответа Vector BCOModerator 14 января 2016 г. 12:32
    • Помечено в качестве ответа Vector BCOModerator 15 января 2016 г. 7:39
    14 января 2016 г. 12:12
    Модератор