Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
 Аватар для ninja2
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041

Закрыть доступ к файлу для других программ

27.10.2015, 15:28. Показов 3555. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть 10 программ запущеных, они обращаются к одному файлу читают из него данные.

От по идее программы могут одновременно файл этот читать и записывать данные, если они будт одновременно работать то рано или позжно они одновременно считают этот файл и работа прог исказится.

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

Как то так нужно сделать??????
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.10.2015, 15:28
Ответы с готовыми решениями:

Как закрыть доступ к файлу других процессов на определённое время?
Добрых суток! блокировка доступа к файлу других процессов flock($file, LOCK_EX); Как можно прописать код , чтобы закрыть доступ к...

Закрыть доступ к файлу
Читал про реализацию этого метода, но что-то у меня не выходит) Исправьте пожалуйста. Мне нужно чтоб по указанному пути программа закрывала...

Закрыть доступ к текстовому файлу
Почему у меня не получается закрыть текстовый файл? Положил .htaccess рядом с файлом. <FilesMatch "\.(txt)$"> Order...

7
 Аватар для Sigin
226 / 225 / 112
Регистрация: 20.10.2013
Сообщений: 808
27.10.2015, 15:52
Изучайте класс Semaphore
1
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18291 / 14214 / 5368
Регистрация: 17.03.2014
Сообщений: 28,892
Записей в блоге: 1
27.10.2015, 16:19
ninja2, при открытии файла через FileStream можно указать режим совместного доступа с помощью enum FileShare. Тебе по идее нужен FileShare.None который означает монопольный доступ.
1
 Аватар для ninja2
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
27.10.2015, 16:33  [ТС]
OwenGlendower, я помню что в MFC такое есть, там файл когда открываешь, то его блокируешь и никто использовать его не может. В C# такое тоже должно быть. C# покруче ж )))))
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18291 / 14214 / 5368
Регистрация: 17.03.2014
Сообщений: 28,892
Записей в блоге: 1
27.10.2015, 16:37
ninja2, я тебе уже ответил что такая возможность есть. Конструкторы FileStream принимают аргумент типа FileShare.
C#
1
2
3
using (var fstream = new FileStream(@"c:\path\to\file", FileMode.Open, FileAccess.ReadWrite, FileShare.None))
{
}
1
 Аватар для ninja2
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
27.10.2015, 21:40  [ТС]
а что var и @ означают? var это типо автоматом подставляется тип переменной, а @ экранирование текста в кавычках?

Добавлено через 4 часа 5 минут
Цитата Сообщение от nestquik2 Посмотреть сообщение
Изучайте класс Semaphore
А как он работает? Блокирует файл для программы?
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18291 / 14214 / 5368
Регистрация: 17.03.2014
Сообщений: 28,892
Записей в блоге: 1
27.10.2015, 21:59
Цитата Сообщение от ninja2 Посмотреть сообщение
var это типо автоматом подставляется тип переменной, а @ экранирование текста в кавычках?
Да. Да.

Цитата Сообщение от ninja2 Посмотреть сообщение
А как он работает? Блокирует файл для программы?
Нет. Это средство синхронизации которое может использоваться как в рамках одного процесса так и в нескольких. С его помощью можно обеспечить поочередный доступ к файлу.
1
 Аватар для ninja2
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
27.10.2015, 22:52  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Нет. Это средство синхронизации которое может использоваться как в рамках одного процесса так и в нескольких. С его помощью можно обеспечить поочередный доступ к файлу.
Ну я понял, я другой класс использую System.Threading.Mutex, тоже самое - разновидность симафора. Блокируем и никто не имеет доступ, там имеется введу код не выполняется.

А можно как то сделать чтобы были общие переменные между процессами. Чтобы из одного процесса была доступна переменная и она же была доступна в другом процессе? Я знаю что можно в книгах читал. Как в С# такое сделать хз.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.10.2015, 22:52
Помогаю со студенческими работами здесь

Открыть\закрыть доступ к папке файлу
Добрый вечер.Написал программку для открытия,закрытия доступа к папке. using System.Security.AccessControl; using System.IO; ...

Как закрыть доступ к ТХТ файлу на сервере
Всем доброго времени суток! У меня следующий вопрос. Каким образом закрыть доступ к ТХТ файлу,чтобы нельзя было выйти на него через...

Как закрыть доступ к файлу группе пользователей через lpSecurityAttributes в SECURITY_ATTRIBUTES?
Добрый день! Моя задача состоит в том, чтобы запретить доступ группе пользователей к файлу через WinAPI. Я использую функцию...

Обеспечить доступ двух программ к одному файлу
Здравствуйте! Вчера пытался сделать игру на двоих с помощью общего доступа в локальной сети. Запускал игру сначала на одном, потом на...

Закрыть доступ к php файлу через адресную строку, но так, чтобы он инклудился другим скриптом и работал
Здравствуйте,подскажите можно ли закрыть доступ к php файлу через адресную строку,но так что бы он инклудирвался другим скриптом и работал.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru