|
|
|
Проблема с правами доступа
|
|||
|---|---|---|---|
|
#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 |
|
||
|
Проблема с правами доступа
|
|||
|---|---|---|---|
|
#18+
Николай II, А если UAC отключить (это-ж первое дело)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2015, 19:59 |
|
||
|
Проблема с правами доступа
|
|||
|---|---|---|---|
|
#18+
Relic HunterА если UAC отключить? Не помогло ( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2015, 21:15 |
|
||
|
Проблема с правами доступа
|
|||
|---|---|---|---|
|
#18+
Не на BDE ли делаете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2015, 21:52 |
|
||
|
Проблема с правами доступа
|
|||
|---|---|---|---|
|
#18+
Никакие базы данных у меня не используются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2015, 22:01 |
|
||
|
Проблема с правами доступа
|
|||
|---|---|---|---|
|
#18+
1) Попробовал што-ли-б Run As Администратор... 2) И еще-б посмотреть DOS-овский атрибут R/O как я говорил. 3) И еще посмотреть нет ли заблоченного процессом (удаляемого в данный момент) или удалённого синонима proba.txt ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2015, 22:21 |
|
||
|
Проблема с правами доступа
|
|||
|---|---|---|---|
|
#18+
mayton1) Попробовал што-ли-б Run As Администратор... Еще до обращения на форум пробовал mayton2) И еще-б посмотреть DOS-овский атрибут R/O как я говорил. Я DOS почти никогда не пользовался, но бегло почитав, понял, что таким атрибутом могут обладать только файлы, а речь идет о том, что не дает создать и потом записать файл. Т.е. сейчас файл, у которого смотреть этот атрибут, еще не существует. mayton3) И еще посмотреть нет ли заблоченного процессом (удаляемого в данный момент) или удалённого синонима proba.txt Нет синонима, пробовались другие имена файлов со случайными названиями ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2015, 22:41 |
|
||
|
Проблема с правами доступа
|
|||
|---|---|---|---|
|
#18+
Вместо сохранения в файл можно вызвать cmd.exe? И затем из него выполнить echo 1>e:\file.txt и echo 1>d:\file.txt. Если проблема воспроизведется (то есть из cmd.exe не получится создать файл e:\file.txt, то это хорошо - проще будет диагностировать проблему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2015, 23:00 |
|
||
|
Проблема с правами доступа
|
|||
|---|---|---|---|
|
#18+
Alibek B.Вместо сохранения в файл можно вызвать cmd.exe? И затем из него выполнить echo 1>e:\file.txt и echo 1>d:\file.txt. Если проблема воспроизведется (то есть из cmd.exe не получится создать файл e:\file.txt, то это хорошо - проще будет диагностировать проблему. Запустил так Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2015, 23:17 |
|
||
|
Проблема с правами доступа
|
|||
|---|---|---|---|
|
#18+
e:\file.txt ? c:\windows\temp\file.txt ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2015, 23:50 |
|
||
|
Проблема с правами доступа
|
|||
|---|---|---|---|
|
#18+
Если права на E: как на скриншотах ранее, то действительно странно. Я бы предположил, как указали ранее, что на одном из дисков (скорее всего D) файловая система создавалась в другой установке ОС; символические имена и RID совпадают, а SID отличается, и вылезают странные сбои. Я бы попробовал с помощью, например, icacls просмотреть все ACL на диски D и E, может быть что-то прояснится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2015, 00:11 |
|
||
|
|

start [/forum/topic.php?all=1&fid=26&tid=1493968]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 10ms |
| total: | 154ms |

| 0 / 0 |

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