|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Ошибка I/o 32 Удаление каталога...
Доброго времени суток....
У меня такая проблема.... Структура каталогов: c:\555\новая папка c:\555\DVD получается так, когда я удаляю подпапки (новая папка и DVD) они удаляются, а вот когда дело доходит до удаления 555, тогда возникает ошибка, говорит что не могу удалить папку.....ПОчеМу???Алгоритм один и тот же, что и при удалении подкаталогов. ПаМаГиТе!!! |
#2
|
|||
|
|||
Покажи алгоритм и может в 555 есть файл какой
|
#3
|
|||
|
|||
В том то и дело....нет там никаких файлов....я проверял....программно через FindFirst и через explorer....
|
#4
|
|||
|
|||
Когда делаю действие на кнопке RmDir('c:\555') удаляет и не возникает никакой ошибки....не могу понять причину....
|
#5
|
|||
|
|||
Тогда, возможно, ошибка в твоем алгоритме
|
#6
|
|||
|
|||
алгоритм...
function IsDirEmpty(sDirPath: String): Boolean; var fs: TSearchRec; begin Result := True; sDirPath:= IncludeTrailingPathDelimiter(sDirPath); if FindFirst(sDirPath+ '*.*', faAnyFile, fs) = 0 then repeat if (fs.Name <> '.') and (fs.Name <> '..') then begin Result := False; FindClose(fs); Exit; end; until FindNext(fs) <> 0; FindClose(fs); end; .... if isDirEmpty(Path) then RmDir(Path); |
#7
|
||||
|
||||
Цитата:
Самый легкий способ используй этот код ShellAPI Код:
procedure TForm1.Button1Click(Sender: TObject); var SHFileOpStruct : TSHFileOpStruct; From : array [0..255] of Char; begin SetCurrentDirectory( PChar( 'C:\' ) ); From := 'Test1.tst' + #0 + 'Test2.tst' + #0 + #0;{Сдесь приведен пример удаление 2 файлов тебе просто надо в кавычках написать путь к примеру для удаления папки 'c:\555\новая папка'+#0+'c:\555\DVD'+#0+#0 удаляет папку и ее содержимое} with SHFileOpStruct do begin Wnd := Handle; wFunc := FO_DELETE; pFrom := @From; pTo := nil; fFlags := 0; fAnyOperationsAborted := False; hNameMappings := nil; lpszProgressTitle := nil; end; SHFileOperation( SHFileOpStruct ); end; Если надо чтоб пользователь не выбирал действия поставь в fFlags:=OF_NOCONFIRMATION {Отвечает для всех операций вместог пользователя Да} Если надо удалить в корзину то пиши в флаге FOF_ALLOWUNDO -------- Список и описание для флага операций FOF_ALLOWUNDO Если возможно, сохраняет информацию для возможности UnDo. FOF_CONFIRMMOUSE Не реализовано. FOF_FILESONLY Если в поле pFrom установлено *.*, то операция будет производиться только с файлами. FOF_MULTIDESTFILES Указывает, что для каждого исходного файла в поле pFrom указана своя директория - адресат. FOF_NOCONFIRMATION Отвечает "yes to all" на все запросы в ходе опеации. FOF_NOCONFIRMMKDIR Не подтверждает создание нового каталога, если операция требует, чтобы он был создан. FOF_RENAMEONCOLLISION В случае, если уже существует файл с данным именем, создается файл с именем "Copy #N of..." FOF_SILENT Не показывать диалог с индикатором прогресса. FOF_SIMPLEPROGRESS Показывать диалог с индикатором прогресса, но не показывать имен файлов. FOF_WANTMAPPINGHANDLE Вносит hNameMappings элемент. Дескриптор должен быть освобожден функцией SHFreeNameMappings. |