|
|
|
Проблема с правами доступа
|
|||
|---|---|---|---|
|
#18+
Я программист самоучка. Иногда пишу для себя программы на C++ Builder 2010 для автоматизации своей работы. Столкнулся с необычным багом: если экзешник программы лежит на диске D:, то программа не может осуществить запись файла на любой диск кроме D: Если этот же экзешник программы перенести на любой другой диск кроме D:, то программа без проблем пишет файлы на любой диск, в т.ч. и на D: В чем магия влияния диска D: на права лежащих на нем программ? Я владелец диска, права у меня: стоят все галки. Запуск из под админа - ничего не дает. Антивирус отключал, перезагружался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2015, 20:23 |
|
||
|
Проблема с правами доступа
|
|||
|---|---|---|---|
|
#18+
Я как раз и описал симптомы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2015, 22:24 |
|
||
|
Проблема с правами доступа
|
|||
|---|---|---|---|
|
#18+
Вы описываете симптомы в стиле "У меня в подполе происходит стук"... Где код, вызывающий ошибку? Где расширенный код ошибки? где сведения об учётной записи, от имени которой выполняется операция, текущих правах в файловой системе, информация из системных журналов (или сообщение, что там пусто, хотя бы)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2015, 22:44 |
|
||
|
Проблема с правами доступа
|
|||
|---|---|---|---|
|
#18+
Код, вызывающий ошибку: Memo1->Lines->SaveToFile("E:\\proba.txt"); Подскажите, где смотреть расширенный код ошибки? Сведения о процессе: ПроцессМонитор в момент попытки записи файла выдает такое: Desired Access: Generic Read/Write Disposition: OverwriteIf Options: Synchronous IO Non-Alert, Non-Directory File Attributes: N ShareMode: None AllocationSize: 0 Сведения о правах: В журнале виндовс события моей программы не зафиксированы. Скажите, какую еще информацию Вам нужно, я выложу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2015, 23:23 |
|
||
|
Проблема с правами доступа
|
|||
|---|---|---|---|
|
#18+
А за какой фигней у вас 2-а слеша подряд в полном имени файла... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2015, 00:03 |
|
||
|
Проблема с правами доступа
|
|||
|---|---|---|---|
|
#18+
Sergey OrlovА за какой фигней у вас 2-а слеша подряд в полном имени файла... Это экранирование спецсимвола. В этом ошибки точно нет! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2015, 00:42 |
|
||
|
Проблема с правами доступа
|
|||
|---|---|---|---|
|
#18+
Николай IIКод, вызывающий ошибку: Код: plaintext 1. Сообщение об ошибке: Cannot create file... Вопрос: этот файл в момент попытки записи - существует? т.е. - должен ли код его урезать либо удалить и пересоздать? Вообще раз "Отказано в доступе" - создаётся впечатление, что файл уже существует, и заблокирован каким-то процессом. Для проверки - попробуй создать случайное имя и убедиться, что такого файла в каталоге нет, а потом записывать... Николай IIгде смотреть расширенный код ошибки?Эммм... ну хотя бы GetLastError спроси для начала... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2015, 09:18 |
|
||
|
Проблема с правами доступа
|
|||
|---|---|---|---|
|
#18+
Николай II, Оберни код создания файла в try ... except, try ... catch и выведи сообщение об ошибке. Там же, в блоке обработки исключений, попроси вернуть тебе LastErrorCode (getLastError()). Ну и еще можно RaiseLastOSError() позвать - там более подробно об ошибке будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2015, 09:43 |
|
||
|
Проблема с правами доступа
|
|||
|---|---|---|---|
|
#18+
AkinaВопрос: этот файл в момент попытки записи - существует? т.е. - должен ли код его урезать либо удалить и пересоздать? Вообще раз "Отказано в доступе" - создаётся впечатление, что файл уже существует, и заблокирован каким-то процессом. Для проверки - попробуй создать случайное имя и убедиться, что такого файла в каталоге нет, а потом записывать... Попробовал случайное имя А если переношу экзешник на диск отличный от D:, то все ОК! try Catch выдает: "Cannot create file "E:\slychayniy.txt". Отказано в доступе" GetLastError возвращает 0 RaiseLastOSError вернуло: First chance exception at $747FB9BC. Exception class EOSError with message 'System Error. Code: 5. Отказано в доступе'. Process OriCatalogGrabbing.exe (6812) Как по-мне, то ничего нового ( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2015, 11:36 |
|
||
|
Проблема с правами доступа
|
|||
|---|---|---|---|
|
#18+
Странно, что Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Выдает "Операция успешно завершена" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2015, 12:30 |
|
||
|
Проблема с правами доступа
|
|||
|---|---|---|---|
|
#18+
Код 5 - это недостаточно прав в файловой системе. Разбирайтесь. Опять же покажите права, ежели нажать кнопочку "Дополнительно". Кстати, кто там овнер? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2015, 12:31 |
|
||
|
Проблема с правами доступа
|
|||
|---|---|---|---|
|
#18+
Со стороны системы проблем не видно. Думаю, Вам следует обращаться в форум по С++. Причина скорее всего не в том, где лежит исполняемый модуль, а в том, что и как он делает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2015, 14:56 |
|
||
|
Проблема с правами доступа
|
|||
|---|---|---|---|
|
#18+
Мы форварднули парня с его проблемой сюда из С++ Что сучилось с правами доступа? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2015, 17:44 |
|
||
|
Проблема с правами доступа
|
|||
|---|---|---|---|
|
#18+
Николай II, Какой у вас системный диск С: Д:? Вроде винда в рут системника писать не дает, только в папку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2015, 18:19 |
|
||
|
Проблема с правами доступа
|
|||
|---|---|---|---|
|
#18+
Relic Hunterвинда в рут системника писать не дает В таком случае было бы системное сообщение об ошибке 0x80070522 вне зависимости от наличия обработчика ошибок в программе емнип. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2015, 18:44 |
|
||
|
Проблема с правами доступа
|
|||
|---|---|---|---|
|
#18+
Relic HunterКакой у вас системный диск С: Д:? Винда стоит на С. Файл подкачки на E. Если перенести экзешник с программой на диск С, то пишет и на С, и на Д, и на Е, и на Ф (на все, короче говоря). А вот если экзешник на Д, то пишет только на Д. В общем, если сегодня никому ничего в голову не придет, закрываем тему, буду запускать прогу с диска Е, хоть это и не совсем удобно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2015, 19:00 |
|
||
|
Проблема с правами доступа
|
|||
|---|---|---|---|
|
#18+
Николай II, А диск Д: кто такой? Съемный? Другие ОС на нем устанавливались? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2015, 19:10 |
|
||
|
Проблема с правами доступа
|
|||
|---|---|---|---|
|
#18+
Я-бы сменил владельца диска Д: Имя владельца может совпадать с админом или вашим, а GUID другой. Я на такое нарывался. Отформатируйте диск Д:, посмотрим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2015, 19:12 |
|
||
|
Проблема с правами доступа
|
|||
|---|---|---|---|
|
#18+
Relic HunterОтформатируйте диск Д:, посмотрим. Вот это мне определённо понравилось... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2015, 19:26 |
|
||
|
Проблема с правами доступа
|
|||
|---|---|---|---|
|
#18+
Relic HunterА диск Д: кто такой? Съемный? Другие ОС на нем устанавливались? Диск Д это отдельный физический диск с одним логическим разделом. никакие ОС на нем не стоят, только документы и другие файлы лежат. Диск Е это тоже отдельный физический диск с одним логическим разделом. Диски С и F это логические диски третьего физического диска. Вот это мне определённо понравилось... Я тоже оценил ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2015, 19:41 |
|
||
|
Проблема с правами доступа
|
|||
|---|---|---|---|
|
#18+
Николай II, А в папку на Д: писать не пробовал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2015, 19:48 |
|
||
|
Проблема с правами доступа
|
|||
|---|---|---|---|
|
#18+
Relic HunterА в папку на Д: писать не пробовал? Пробовал, на диск Д пишеться куда угодно и при любых условиях (независимо от того на каком диске лежит экзешник программы). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2015, 19:52 |
|
||
|
|

start [/forum/topic.php?fid=26&msg=39001714&tid=1493968]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 230ms |
| total: | 388ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...