Войти

Показать полную графическую версию : Delphi


Surround
09-01-2004, 17:36
В ходе усилинного кодинга на делфях возниколо несколько вопросов :)
Помогите, плз.

1)Как можно очистить корзину?
2)Можно ли удалить непустую директорию?
3)Как получить список локальных дисков?

Спасиба :)

Guest
09-01-2004, 21:08
начну с последнего.
3)один из способо узнать список дисков это попытаться узнать объем свободного места на диске
вот так это выглядит а билдере

  AnsiString DriveList="";
  for(Byte i=1;i<=26;i++){
    if(DiskFree(i)!=-1){
      char Leter=char(char('A')+i-1);
      DriveList=DriveList+Leter+"\n";
    };
  };

смотри в хелпе про DiskFree

2)можно ... но предварительно из нее нужно все удалить ;)))
1)неправельный метод это удалить на всех дисках папку RECYCLER :biggrin:

Megabizon
09-01-2004, 22:59
3. смотри GetLogicalDriveStrings
2. смотри RemoveDirectory
1. смотри SHEmptyRecycleBin

Исправлено: Megabizon, 23:10 9-01-2004

Surround
09-01-2004, 23:35
Megabizon
Но RemoveDirectory удаляет только пустые каталоги. А есть ли альтернативная команда для удаления любого, даже непустого, катлога?

UZER
10-01-2004, 09:09
Surround
имхо, чтобы удалить пустую директорию, нужно узнать, что за файлы в ней лежат, удалить их, а затем удалить директорию

Megabizon
10-01-2004, 10:46
Surround
Извини не внимательно прочитал, показалось надо пустую директорию удалить. В твоем случае придется рекруссивный обход папки делать и удалять в ней файлы. Примеров в инете масса.

Surround
10-01-2004, 11:56
Megabizon
А где их найти, этот рекруссивный обход папки ?

Это поможет, если папака содержит несколько уровней поддиректорий?
Вроде бы RemoveDirectory даже если в директории есть пустая папка, все равно родительскую диру не удаляет....

Megabizon
10-01-2004, 16:20
Вот, например, на *С
http://www.softforum.ru/news.exe?cmd=article&group=cps.borland.cbuilder.faq&item=6&utag=
Это поможет, если папака содержит несколько уровней поддиректорий?
Поддиректории надо тоже очищать рекрусией.
Посмотри на
http://www.torry.net
мож есть какие компоненты или классы для этого.



Исправлено: Megabizon, 16:23 10-01-2004

Surround
10-01-2004, 17:48
Megabizon

А еще адресок можешь дать? http://www.softforum.ru/news.exe?cmd=article&group=cps.borland.cbuilder.faq&item=6&utag= не работает :(

не а, нет там компонентов. Но все равно спасибо :)

Кстать, а есть где-нить электронные учебники по Delphi?

Prisoner
10-01-2004, 19:49
Surround
Погляди в прикрепленную тему.

Megabizon
10-01-2004, 22:09
Нашел пример еще проще через Шелл функцию, но сам его не пробовал
смотри здесь
http://www.rsdn.ru/Forum/?mid=434920
Вот еще на этом же ресурсе пример с рекрусией
http://www.rsdn.ru/Forum/?mid=437812
(пройдись по ответам
А ссылка в предыдущем топе работает, я проверял ее.:)

Исправлено: Megabizon, 22:12 10-01-2004

Surround
10-01-2004, 22:13
Megabizon
звыняй, а у меня тогда написал CGI-error...:biggrin:




© OSzone.net 2001-2012