|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Ноя 12, 2003 01:12:36 Программа 1 пишет файл в "...\Program Files\SomeProg\..." Всё ОК. Программа 2 пытается удалить этот файл. DeleteFile возвращает "Отказано в доступе". Обе программы работают в одном и том же контексте. Как это может быть? |
|
|
Дата: Ноя 12, 2003 01:31:04 Foamplast Программа 1 должна вызвать CloseHandle перед тем как программа 2 попытается удалить файл. Контекст тут особой роли не играет. |
|
|
Дата: Ноя 12, 2003 04:57:53 Quantum Может, тут просто проблема с правом DELETE при вызове CreateFile ? |
|
|
Дата: Ноя 12, 2003 06:44:21 Grenader Имеете в виду атрибут readonly? Тогда перед удалением нужно его снять через SetFileAttributes. |
|
|
Дата: Ноя 12, 2003 07:01:24 · Поправил: Grenader Quantum Я имел в виду права доступа к файлу (в случае использования NTFS) :) В DACL access mask для текущего пользователя разрешает чтение/запись, но не удаление... "To delete or rename a file, you must have either delete permission on the file or delete child permission in the parent directory..." - MSDN |
|
|
Дата: Ноя 20, 2003 04:54:19 1. Первая программа работает и завершается, только после этого я запускаю вторую. 2. Всё это происходит в сеансе Администратора Windows 2000. Т.е. я потом эти файлы из "C:\Program Files\SomeProg\*.*" стираю ручками. 3. Пути к файлам проверил. Идентичны. 4. Код первой программы: Push Eax CreateFile [EBP_PARAM2], GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL | FILE_ATTRIBUTE_READONLY | FILE_FLAG_SEQUENTIAL_SCAN, NULL Pop Ebx Push Eax WriteFile Eax, Ebx, [EBP_PARAM3], nWritten, NULL Pop Eax CloseHandle Eax Здесь параметр 2 - путь, параметр 3 - размер данных 5. Код второй программы: DeleteFile strPath В чём же, всё-таки дело? |
|
|
Дата: Ноя 20, 2003 06:09:00 Foamplast > FILE_ATTRIBUTE_READONLY Убрать! |
|
|
Дата: Ноя 21, 2003 01:19:20 Блин, из-за тривиальной невнимательности столько возни... Спасибо всем, кто всё-таки помог найти оплошность! |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.069 |