powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / сохранение в ini на облачном диске
9 сообщений из 9, страница 1 из 1
сохранение в ini на облачном диске
    #39555398
Vizit0r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть подключенное в виде папки облако (сталкивался с DropBox, Mail.ru и еще чьим-то). Приложение живет на нем. При закрытии приложения все настройки скидываются в ini.
Вот на этом моменте время от времени вылетает ошибка EFCreateError - Cannot create file "C:\Users\jagunso-pc\Dropbox\macros\Stealth_v8.5.8\Stealth.ini". The process cannot access the file because it is being used by another process.

при MemIni.UpdateFile;
на моменте
Stream := TFileStream.Create(FileName, fmCreate);

Довольно редко, у разных пользователей, но регулярно.

Предполагаем, что зло в синхронизации, когда именно в этот момент файл монопольно занимается для проверки или что-то в этом роде.

Может кто-то сталкивался, как бороться? Попробовать через пару сотен мс повторить сохранение, или еще что...
...
Рейтинг: 0 / 0
сохранение в ini на облачном диске
    #39555406
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vizit0r,

попробуй. Или что ещё.
...
Рейтинг: 0 / 0
сохранение в ini на облачном диске
    #39555408
AltHasp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vizit0r,
замени
Stream := TFileStream.Create(FileName, fmCreate);
на
Stream := TFileStream.Create(FileName, fmCreate or fmShareDenyWrite) ;
...
Рейтинг: 0 / 0
сохранение в ini на облачном диске
    #39555558
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AltHaspзамени
Stream := TFileStream.Create(FileName, fmCreate);
на
Stream := TFileStream.Create(FileName, fmCreate or fmShareDenyWrite) ;Идея правильная, но не взлетит
Код: pascal
1.
2.
fmCreate = $FFFF;
fmShareDenyWrite = $0020;

or ни к чему не приведет.

Решение: использовать THandleStream + апишную CreateFile
...
Рейтинг: 0 / 0
сохранение в ini на облачном диске
    #39555580
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наоборот, надо отобрать доступ у других приложений к файлу, пока с файлом происходит работа. Либо писать всё за один раз (в одну транзакцию). Либо писать настройки во временный файл, а когда всё будет готово -- копировать его на место старого. Кривой сервис синхронизации ловит изменение файла и сразу начинает его синхронизировать, тогда как другие части приложения еще не успели туда сохраниться.
...
Рейтинг: 0 / 0
сохранение в ini на облачном диске
    #39555813
Vizit0r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaDiНаоборот, надо отобрать доступ у других приложений к файлу, пока с файлом происходит работа. Либо писать всё за один раз (в одну транзакцию). Либо писать настройки во временный файл, а когда всё будет готово -- копировать его на место старого. Кривой сервис синхронизации ловит изменение файла и сразу начинает его синхронизировать, тогда как другие части приложения еще не успели туда сохраниться.

MemIni так и делает - все держится в памяти, в конце делается UpdateFile, где делается сохранение в файл. И ошибка именно там.
...
Рейтинг: 0 / 0
сохранение в ini на облачном диске
    #39555818
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vizit0r,

Может кто-то еще туда пишет, в этот файл. Можно запустить Process Monitor от SysinternalsSuite и прогнать работу приложения, посмотреть, когда идут обращения к этому файлу и с каким доступом (поставит бряк на UpdateFile, остановить на нем программу и убедиться через логи, что до этого момента никто в ини не пишет).
...
Рейтинг: 0 / 0
сохранение в ini на облачном диске
    #39556019
Vizit0r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я себе на компе делал облачную папку, держал там приложение, долго и нудно тестил - так и не смог ни разу повторить. Если б мог - этой темы бы небыло :)
...
Рейтинг: 0 / 0
сохранение в ini на облачном диске
    #39556096
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vizit0r,

Попробуй сделать то, что JaDi предложил. Процмон, бывает, реально помогает найти проблему. Недавно на одном из компов обнаружили им проблему с доступом к файлам из-за прав, неверно устанавливаемых инсталлятором. Без нужных прав программа просто падала с AV, падала так, что даже эврикалог не могла дамп снять.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / сохранение в ini на облачном диске
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]