Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.08.31;
Скачать: CL | DM;

Вниз

Подскажите как удалить папку   Найти похожие ветки 

 
lavgirls   (2008-07-23 17:21) [0]

Подскажите как удалить папку, програмным путем естественно.


 
Palladin ©   (2008-07-23 17:22) [1]

RemoveDir


 
lavgirls   (2008-07-23 17:25) [2]

Благодарствую


 
lavgirls   (2008-07-23 17:37) [3]

А содержимое почему не удалается?


 
sniknik ©   (2008-07-23 17:41) [4]

в сообщении об ошибке которая при этом происходит должно быть написано почему. читай ошибки.


 
Игорь Шевченко ©   (2008-07-23 17:41) [5]

Попробуй SHFileOperation


 
Johnmen ©   (2008-07-23 17:41) [6]


> А содержимое почему не удалается?

А разве должно?


 
lavgirls   (2008-07-23 17:42) [7]

было бы что читать


 
Медвежонок Пятачок ©   (2008-07-23 17:44) [8]

было бы что читать

Понятное дело. Это ж не "мурзилка"


 
sniknik ©   (2008-07-23 17:50) [9]

если нечего то поможет
GetLastError/SysErrorMessage или RaiseLastOSError, Win32Check.


 
Johnmen ©   (2008-07-23 17:53) [10]


> sniknik ©   (23.07.08 17:50) [9]
> ...то поможет GetLastError/SysErrorMessage или
> RaiseLastOSError, Win32Check.

Ты большой оптимист :)


 
Renegat ©   (2008-07-23 17:55) [11]

procedure SLE;
var lpMsgBuf: PChar;
begin
 FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER or FORMAT_MESSAGE_FROM_SYSTEM, 0, GetLastError, LANG_NEUTRAL, @lpMsgBuf, 0, 0);
 MessageBox(0, lpMsgBuf, 0, 0);
 LocalFree(lpMsgBuf);
end;

Не идеал, конечно, но зато можно будет понять в чём дело. Вызывать сразу после выполнения сбоящей процедуры.


 
Ega23 ©   (2008-07-23 17:55) [12]

Собственно, ещё после [1] догадывался, что этим не кончится.
Автор, почитай хелп по RemoveDir.


 
sniknik ©   (2008-07-23 17:56) [13]

> Ты большой оптимист :)
"находит" иногда... ;(


 
Медвежонок Пятачок ©   (2008-07-23 17:58) [14]

Собственно, ещё после [1] догадывался, что этим не кончится.

А я после [0]

:)))


 
Медвежонок Пятачок ©   (2008-07-23 18:03) [15]

procedure SLE;
var lpMsgBuf: PChar;
begin
LocalFree(lpMsgBuf);
end;


HLOCAL LocalFree(
   HLOCAL hMem  // handle of local memory object
  );


 
Медвежонок Пятачок ©   (2008-07-23 18:06) [16]

Хотя гениям конечно простительно. У них D не установлена.


 
Anatoly Podgoretsky ©   (2008-07-23 18:11) [17]

Совет уже был в [5]
Но его надо повторять как мантру.

> Для всех операций с файлами всегда использовать SHFileOperation


 
Renegat ©   (2008-07-23 18:17) [18]

Удалено модератором


 
Медвежонок Пятачок ©   (2008-07-23 18:21) [19]

Удалено модератором


 
Медвежонок Пятачок ©   (2008-07-23 18:23) [20]

Удалено модератором


 
Renegat ©   (2008-07-23 18:25) [21]

Удалено модератором


 
Медвежонок Пятачок ©   (2008-07-23 18:25) [22]

Удалено модератором


 
Медвежонок Пятачок ©   (2008-07-23 18:26) [23]

Удалено модератором


 
Медвежонок Пятачок ©   (2008-07-23 18:29) [24]

Удалено модератором


 
Renegat ©   (2008-07-23 18:31) [25]

Удалено модератором


 
Медвежонок Пятачок ©   (2008-07-23 18:32) [26]

Удалено модератором


 
Медвежонок Пятачок ©   (2008-07-23 18:34) [27]

Удалено модератором


 
Renegat ©   (2008-07-23 18:34) [28]

Удалено модератором


 
Медвежонок Пятачок ©   (2008-07-23 18:38) [29]

Удалено модератором


 
Renegat ©   (2008-07-23 18:42) [30]

Удалено модератором


 
Медвежонок Пятачок ©   (2008-07-23 18:44) [31]

Удалено модератором


 
Тын-Дын ©   (2008-07-23 18:53) [32]

Удалено модератором


 
Anatoly Podgoretsky ©   (2008-07-23 18:54) [33]

Удалено модератором


 
Anatoly Podgoretsky ©   (2008-07-23 18:55) [34]

Удалено модератором


 
Тын-Дын ©   (2008-07-23 18:56) [35]

Удалено модератором


 
Amoeba ©   (2008-07-23 19:01) [36]

Автору вопроса сюда (о SHFileOperation):
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=91


 
Anatoly Podgoretsky ©   (2008-07-23 19:09) [37]

Удалено модератором


 
Тын-Дын ©   (2008-07-23 20:13) [38]

Удалено модератором


 
Denis__ ©   (2008-07-23 20:20) [39]

procedure DelFolder(sPath : String; var DelFilesCount, DelDirsCount,
   NoDelFilesCount, NoDelDirsCount : Integer);
 procedure DF(path : String; var DFC, DDC, NDFC, NDDC : Integer);
 var
   fr : TSearchRec;
 begin
   FindFirst(path + "\*.*", faAnyFile, fr);
   repeat
     if (fr.Name <> ".") AND (fr.Name <> "..") AND
       (fr.Attr AND faDirectory = faDirectory) then
     begin
       DF(path + "\" + fr.Name, DFC, DDC, NDFC, NDDC);
       try
         RmDir(path + "\" +fr.Name);
         Inc(DDC);
       except
         Inc(NDDC)
       end;
     end;
   until FindNext(fr) <> 0;
   FindClose(fr);

   FindFirst(path + "\*.*", faAnyFile, fr);
   repeat
     if (fr.Name <> ".") AND (fr.Name <> "..")
       AND (fr.Attr AND faDirectory <> faDirectory) then
     begin
       if DeleteFile(path + "\" + fr.Name) then
         Inc(DFC)
       else
         Inc(NDFC);
     end;
   until FindNext(fr) <> 0;
   FindClose(fr);
 end;
begin
 DelFilesCount := 0;
 DelDirsCount := 0;
 NoDelFilesCount := 0;
 NoDelDirsCount := 0;
 DF(sPath, DelFilesCount, DelDirsCount, NoDelFilesCount, NoDelDirsCount);
end;

Мастера, покритикуйте код, плиз. Только по теме, что можно улучшить, исправить.


 
Loginov Dmitry ©   (2008-07-23 22:07) [40]

> покритикуйте код, плиз. Только по теме, что можно улучшить,
> исправить.


1) Нет анализа результата функции FindFirst(). Если поиск (вдруг) не начался, то и FindClose() вызывать не следует.
2) Зачем два цикла поиска? Что, одним нельзя обойтись?
3) Функция не удаляет указанную папку. Автор обидется :)
3) Если уж критиковать по полной ;) В чем информативность дополнительных 4х переменный. Можно, чтобы функция возвращала результат, удалось ли удалить содержимое из указанной папки или нет. Еще: каждый раз объявлять 4 переменные - замучаешься. Лучше параметры вместо var сделать PInteger и внутри функции проверять на Assigned().



Страницы: 1 2 вся ветка

Текущий архив: 2008.08.31;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.016 c
4-1195492375
Мой ник
2007-11-19 20:12
2008.08.31
Перевод PByte -> PChar


15-1216030875
denic
2008-07-14 14:21
2008.08.31
В какой программе


15-1215766185
ekto
2008-07-11 12:49
2008.08.31
Создать класс или обойтись процедурками.


11-1192910752
Виктор007
2007-10-21 00:05
2008.08.31
Ошибка в TBitBtn при включенном GRAPHCTL_XPSTYLES


15-1215588601
pasha_golub
2008-07-09 11:30
2008.08.31
Куда ложить библиотеки