Какое программное обеспечение я могу использовать, чтобы определить детали открытия файла (в частности, разрешения для других процессов)?
У нас есть две версии программного обеспечения для печати карт: CardFive и Zebra Card Studio, которая приобрела CardFive и поддерживает свое старое программное обеспечение.
Оба открывают файл CSV для печати инструкций. Старая версия позволяет последующим экземплярам программного обеспечения изменять эти инструкции. Новой версии нет - она отказывается разрешать любые модификации.
Я подозреваю, что проблема связана с привилегиями блокировки файлов, то есть старое программное обеспечение открывается с OF_SHARE_DENY_NONE (ReadWrite в перечислении FileShare .NET), и что новое программное обеспечение открывается с большими ограничениями общего ресурса.
Как я могу точно сказать, как сетевой файл заблокирован? Я попытался просмотреть несколько экземпляров обеих версий приложений в Process Explorer, но он показывает только, какой процесс имеет открытый файл, а не то, как он открыт:
Я знаю, что одновременный доступ к записи может вызвать проблемы целостности данных. В этом конкретном случае я не ожидаю, что это будет проблемой.