Форум программистов, компьютерный форум, киберфорум
C++: WinAPI
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
9 / 9 / 4
Регистрация: 22.03.2013
Сообщений: 222
1

Блокирование файла

16.10.2015, 18:01. Просмотров 1259. Ответов 5
Метки нет (Все метки)

Приветствую.
Имеется текстовый файл, при запуске программы в него записываются данные. Необходимо после записи заблокировать файл так, чтобы при следующем запуске программы, данные больше не смогли записаться. Подскажите, пожалуйста, как такое реализовать, весь инет прогуглил, ответа не нашел.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.10.2015, 18:01
Ответы с готовыми решениями:

Блокирование и разблокирование окон
вообщем пишу программу, в которой при нажатии кнопки, открывается новое окно, которое отключает все...

Блокирование системных клавиш и их комбинации
Системные нажатия клавиш производят системные сообщения WM_SYSKEYDOWN и WM_SYSKEYUP. Как это...

Как сделать блокирование одной клавиши?
Здравствуйте, у меня задача, мне нужно чтобы программа при нажатии Left Shift + Left Ctrl + F2...

Запрет/Блокирование запуска программ с WinAPI
Добрый день, возникла такая задача, рационального решения пока я не вижу. Тут вопрос наверное в...

5
Native x86
Эксперт Hardware
3517 / 2334 / 688
Регистрация: 13.02.2013
Сообщений: 7,683
16.10.2015, 18:06 2
Лучший ответ Сообщение было отмечено Genome как решение

Решение

Цитата Сообщение от Genome Посмотреть сообщение
весь инет прогуглил, ответа не нашел
На нашли, потому что ответа нет. Если программа может писать файл, то технически без постороннего вмешательства она сможет сделать это всегда.

Можете просто предусмотреть в логике программы запрет на модификацию уже созданного файла.
1
9 / 9 / 4
Регистрация: 22.03.2013
Сообщений: 222
16.10.2015, 18:38  [ТС] 3
Благодарю за ответ. Сделал запрет на изменение уже существующего файла при помощи флага CREATE_NEW.

Добавлено через 3 минуты
Если кому надо, вот код:
C++
1
2
3
4
5
HANDLE file = CreateFileA("file.txt", GENERIC_WRITE | GENERIC_READ, FILE_SHARE_READ, NULL, CREATE_NEW, FILE_ATTRIBUTE_SYSTEM, NULL); 
    
    if(INVALID_HANDLE_VALUE == file) {
        MessageBox(NULL, L"Запрещено!", L"Message", MB_OK);
    }
0
Native x86
Эксперт Hardware
3517 / 2334 / 688
Регистрация: 13.02.2013
Сообщений: 7,683
16.10.2015, 18:49 4
Цитата Сообщение от Genome Посмотреть сообщение
Если кому надо, вот код:
Ваш код выдаст "Запрещено!" даже если файла вовсе нет. Лучше выводить результат GetLastError() и FormatMessage().
0
9 / 9 / 4
Регистрация: 22.03.2013
Сообщений: 222
16.10.2015, 19:12  [ТС] 5
Нет-нет. При запуске программы, если файла нет, то он создается и в него происходит запись, а если есть, то выводится ошибка. Затестил неоднократно.
0
267 / 170 / 40
Регистрация: 25.08.2014
Сообщений: 1,087
Записей в блоге: 1
18.10.2015, 07:45 6
Цитата Сообщение от Genome Посмотреть сообщение
Необходимо после записи заблокировать файл так, чтобы при следующем запуске программы, данные больше не смогли записаться.
Добавь запрещающее правило в DACL файла, SID - World, тип доступа - запись.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.10.2015, 07:45

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

Блокирование файла
Приветствую, знатоки! У меня такой вопрос: есть два процесса (аналогичные) по записи в файл данных...

Блокирование консольного ввода в C++
Всем привет! Хотел бы узнать: как в плюсах можно реализовать "блокирование" консольного ввода? То...

Блокирование сокета антивирусом
При создания подключения через сокеты происходит блокирование клиента антивирусом(avast, Dr WEB)....

Блокирование и доступ к флешке
Добрый день! Задача такая: необходимо закрыть доступ к флешке, но таким образом, чтобы с помощью...

Блокирование отдельных элементов
В ComboBox или, допустим, в RadoiGroup необходимо заблокировать отдельные элементы при соблюдении...

Временное блокирование скроллинга в QTabelView
Задача казалось бы элементарная, но потратил довольно много врмени и не смог... На форме...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.