|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Фев 11, 2003 23:22:26 собственно проблема такая - имеется папка. если её пробывать удалить через RemoveDirectory, то естественно она удаляется, НО стоит перед вызовом RemoveDirectory зделать FindFirstFileA... FindNextFileA... FindClose, то RemoveDirectory возвращает ошибку и папка Не удаляется. подскажите, в чём дело? |
|
|
Дата: Фев 12, 2003 05:16:53 Папка пустая? FindClose возвращает TRUE? Можете показать кусок кода? |
|
|
Дата: Фев 12, 2003 15:59:54 да. папка пустая. ВСЕ вызовы проходят успешно, кроме RemoveDirectory вот: . . invoke FindFirstFile,addr Rbuff,addr fdata mov hFND,eax inc eax jz endsrch fnxt9: invoke DeleteFile,addr fdata+44 invoke FindNextFile,hFND,addr fdata or eax,eax jz endsrch jmp fnxt9 endsrch: invoke FindClose,hFND invoke RemoveDirectory,addr Rbuff2 . . собственно Find** вызывается для удаления файла. Если оно есть, то оно естественно удаляется. всё. , но папка остаётся. если скажем RemoveDirectory пихнуть в начало этого куска, (при условии что папка пуста она удалиться, но если она также пуста но идёт поиск файла, то облом.) Вот ещё - вся процедура идёт в одном из трэдов процесса - подругому никак. |
|
|
Дата: Фев 12, 2003 17:25:44 Новый вариант: Удаляемая папка называется MYDIR и находится в текущем каталоге .DATA Rbuff db "*.*",0 DirF db "MYDIR",0 DirF2 db "..",0 .DATA? fdata WIN32_FIND_DATA <> hFND dd ? .CODE . . . ; Заходим в удаляемую папку (это важно!!!) invoke SetCurrentDirectory,OFFSET DirF invoke FindFirstFile,OFFSET Rbuff,OFFSET fdata mov hFND,eax inc eax jz endsrch ; Пропускаем . и .. (первые результаты поиска FindNextFile) invoke FindNextFile,hFND,OFFSET fdata fnxt9: invoke FindNextFile,hFND,OFFSET fdata test eax,eax jz endsrch ; Delete после Find! invoke DeleteFile,OFFSET fdata+44 jmp fnxt9 endsrch: invoke FindClose,hFND ; Выходим из удаляемой папки (это тож важно!!!) invoke SetCurrentDirectory,OFFSET DirF2 invoke RemoveDirectory,OFFSET DirF . . . Вот и всё. Так должно работать. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.066 |