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

Вниз

Вызов команды del (либо erase) в Delphi.   Найти похожие ветки 

 
Новичек ©   (2007-05-18 11:31) [0]

Не подскажете ли, как реализовать сабж?


 
Ega23 ©   (2007-05-18 11:37) [1]

В смысле удаления файла?


 
Новичек ©   (2007-05-18 11:40) [2]

Именно. С этой командой можно удалять файлы по маске, что мне и нужно.


 
iXT ©   (2007-05-18 12:06) [3]

DeleteFile; FindFirst, FindNext, FindClose + F1


 
Новичек ©   (2007-05-18 12:13) [4]

2 iXT:
А зачем? Если существует возможность использовать вызов всего одной команды, то почему бы этой возможностю не воспользоваться?
Ну, а ежели нет - то придется воспользоваться приведенными Вами функциями. :-(


 
iXT ©   (2007-05-18 12:32) [5]

> Новичек ©   (18.05.07 12:13)
> А зачем? Если существует возможность использовать вызов
> всего одной команды, то почему бы этой возможностю не воспользоваться?

А сам как думаешь?


 
{RASkov} ©   (2007-05-18 12:32) [6]

> С этой командой можно удалять файлы по маске


> А зачем? Если существует возможность использовать вызов
> всего одной команды,

По маске можно искать, а удаляем - конкретный файл с конкретным именем...


 
Новичек ©   (2007-05-18 12:35) [7]

2 {RASkov}:

> удаляем - конкретный файл с конкретным именем..

Почему? Вызов "del *.txt" как раз и удалит ВСЕ текстовые файлы.


 
Новичек ©   (2007-05-18 12:37) [8]

2 iXT:
Имеете в виду, что такой вызов невозможен? :-(


 
В.И.Ленин   (2007-05-18 12:48) [9]

Нет уважаемый. Мне кажето у iXT уже нет слов, как у меня, а остались одни слюни.


 
Desdechado ©   (2007-05-18 12:51) [10]

ShellExecute( "cmd.exe /p del *.txt"
Хотя iXT ©   (18.05.07 12:06) [3] правильнее, ибо внутри del та же самая фигня.


 
iXT ©   (2007-05-18 12:55) [11]

совсем не это.

> [9] В.И.Ленин   (18.05.07 12:48)

У какой...


> [8] Новичек ©   (18.05.07 12:37)

Как думаешь, где будут удаляться твои файлы при вызове "del *.txt" ?


 
{RASkov} ©   (2007-05-18 12:55) [12]

> [7] Новичек ©   (18.05.07 12:35)
> 2 {RASkov}:
....
> Почему? Вызов "del *.txt" как раз и удалит ВСЕ текстовые файлы.

Сам подумай как оно это сделает.... хотя тебе уже рассказали. DeleteFile применяется к одному конкретному файлу, а не к группе.


 
{RASkov} ©   (2007-05-18 13:01) [13]

N:=FindFirst(Dir+"\*.txt", faAnyFile, SR);
while N=0 do begin
DeleteFile(SR.Name);
N:=FindNext;
end;
Есть RxLib и там в модуле FileUtil есть DeleteFiles
function DeleteFiles(const FileMask: string): Boolean;
Description
Удаляет все файлы, заданные маской FileMask.


 
Новичек ©   (2007-05-18 13:06) [14]

2 iXT:
Думаю, в каталоге, где находится исполняемый файл.

2 Desdechado:
Спасибо, я что-то стормозил. Сделал так:

ShellExecute(frmMain.Handle, "Open", "cmd.exe", "/p /c del *.txt", "", SW_SHOWNORMAL);


2 {RASkov}:
Извините за неточность. Я имел в виду удаление в текущей директории.


 
Новичек ©   (2007-05-18 13:08) [15]

2 {RASkov}:
Это, imho, более грамотное решение. Спасибо Вам большое.


 
{RASkov} ©   (2007-05-18 13:11) [16]

> [14] Новичек ©   (18.05.07 13:06)
> 2 Desdechado:
> Спасибо, я что-то стормозил. Сделал так:
>
> ShellExecute(frmMain.Handle, "Open", "cmd.exe", "/p /c del *.txt", "", SW_SHOWNORMAL);

Вдвойне ;) Чего только не придумают, лишь бы в школу не ходить.


 
Новичек ©   (2007-05-18 13:12) [17]

Ну, не нападайте :-) Такая жара, что мозги плавятся.


 
Desdechado ©   (2007-05-18 13:23) [18]

>  Я имел в виду удаление в текущей директории.
Как часто представление о текущей директории у программиста не совпадает с представлением о ней же у системы.
Попробуй запустить свою программу с ярлыка на рабочем столе.


 
Новичек ©   (2007-05-18 13:27) [19]

2 Desdechado:
Интересно, сейчас попробую, но, сдается мне, что файлы будут удалены там, где лежит exe"шник.


 
Новичек ©   (2007-05-18 13:30) [20]

Попробовал. Удалились там, где и предполагалось.


 
{RASkov} ©   (2007-05-18 13:32) [21]

> Попробуй запустить свою программу с ярлыка на рабочем столе.

Счас насоветуют.... я вот могу посоветовать сделать ярлык к проге в папке Windows и оттуда запустить.... но лучше подумать и не делать так.
:о)


 
{RASkov} ©   (2007-05-18 13:32) [22]

> [19] Новичек ©   (18.05.07 13:27)


> [20] Новичек ©   (18.05.07 13:30)

Ух не заметил... тебе повезло. :) чесно.


 
Desdechado ©   (2007-05-18 13:35) [23]

> файлы будут удалены там, где лежит exe"шник.
От многого зависит. В т.ч. и от настроек ярлыка, от последней посещенной папки и т.п.


 
Новичек ©   (2007-05-18 13:36) [24]

2{RASkov}:
Смеетесь над новичком? :-) Ну, ладно, смех - это здоровье :-)


 
{RASkov} ©   (2007-05-18 13:39) [25]

> [24] Новичек ©   (18.05.07 13:36)
> Смеетесь над новичком?

Да нет же, просто хочется показать где ты не прав.... и следует задуматься над этим. ;)

> Ну, ладно, смех - это здоровье :-)

то же верно :)


 
Новичек ©   (2007-05-18 13:39) [26]

2 Desdechado:
Вы правы, это я тоже проверил.


 
iXT ©   (2007-05-18 14:01) [27]

Не, ну объясни, почему всетаки не хочешь реализовать простейший алгоритм и сделать по хорошему?

Ну вот не NT попалась, нет там cmd.exe


 
Новичек ©   (2007-05-18 14:05) [28]

А я уже сделал подругому, Вы меня убедили:


 N := FindFirst("*.sql", faAnyFile, SR);
 while N = 0 do
 begin
   DeleteFile(SR.Name);
   N := FindNext(SR);
 end;


 
iXT ©   (2007-05-18 14:07) [29]

FindClose забыл.


 
Новичек ©   (2007-05-18 14:13) [30]

Точно, спасибо.


 
Amoeba ©   (2007-05-18 14:17) [31]

Файловые операции средствами ShellAPI.
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=91
К сожалению не знаю, будет ли это работать, если имена файлов заданы не прямо, а с маской.


 
Новичек ©   (2007-05-18 14:32) [32]

2 Amoeba:

> будет ли это работать, если имена файлов заданы не прямо,
>  а с маской.

Работает (проверил).



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

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

Наверх




Память: 0.54 MB
Время: 0.018 c
2-1179328567
nuflin
2007-05-16 19:16
2007.06.10
Очень важный вопрос


15-1179157796
matt
2007-05-14 19:49
2007.06.10
Росийская ОС


2-1179801041
ALEX][ANDR
2007-05-22 06:30
2007.06.10
ТАЙМЕР


15-1179147772
r2d2
2007-05-14 17:02
2007.06.10
определение антивируса и фаервола


15-1177890843
Бедный_Чел
2007-04-30 03:54
2007.06.10
Нужен windows сервер