Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.04.2012, 22:05
StudentMarat StudentMarat вне форума
Прохожий
 
Регистрация: 18.02.2011
Сообщения: 38
Репутация: 156
По умолчанию Удаление файлов *.txt из папки Мои документы (Delphi))

Нужна помощь. Хочу дополнить свой код. Нужно, чтобы из папки "Мои документы" по нажатию кнопки удалялись все файлы с расширением *.txt.
Как узнать путь к папке "Мои документы" я узнал. Вот код:

Код:
//Сначала добавить в Uses ActiveX, ShlObj;

 //Узнать папку Мои документы
function GetMyDoc : string;
var
  SpecialDir: PItemIdList;
begin
    SetLength(result, MAX_PATH);
    SHGetSpecialFolderLocation(Form1.Handle, CSIDL_PERSONAL, SpecialDir);
    SHGetPathFromIDList(SpecialDir, PChar(Result));
    SetLength(result, lStrLen(PChar(Result)));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  showmessage(GetMyDoc);
end;

Как теперь можно из папки "Мои документы" удались файлы с расширением *.txt ???????
Ответить с цитированием
  #2  
Старый 21.04.2012, 22:17
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

FindFirst, FindNext. В справке имеется пример использования.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #3  
Старый 21.04.2012, 22:30
StudentMarat StudentMarat вне форума
Прохожий
 
Регистрация: 18.02.2011
Сообщения: 38
Репутация: 156
По умолчанию

А как можно применить их к моему примеру. Не могу никак разобраться. В справке написана общая информация.
Ответить с цитированием
  #4  
Старый 21.04.2012, 22:41
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Достаточно простой пример:
Код:
function DeleteFiles(const FileMask : String) : Boolean;
var
  SRec : TSearchRec;
  Path : String;
begin
  Result := FindFirst(FileMask, faAnyFile, SRec) = 0;
  if not Result then
    exit;
  try
    Path := ExtractFilePath(FileMask);
    Repeat
      if (SRec.Name <> '') and (SRec.Name  <> '.') and (SRec.Name <> '..') and
        (SRec.Attr and (faVolumeID + faDirectory) = 0) then
      begin
        Result := DeleteFile(Path + SRec.Name);
        if not Result then
          break;
      end;
    Until FindNext(SRec) <> 0;
  finally
    FindClose(SRec);
  end;
end;
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Этот пользователь сказал Спасибо angvelem за это полезное сообщение:
StudentMarat (21.04.2012)
  #5  
Старый 21.04.2012, 23:02
StudentMarat StudentMarat вне форума
Прохожий
 
Регистрация: 18.02.2011
Сообщения: 38
Репутация: 156
По умолчанию

Я попробовал применить функцию вот так:
Код:
 DeleteFiles('D:\Новая папка\*.txt');
Да, она удаляет из данной папки файлы с расширением *.txt

А как сделать так,чтобы удаляла из папки "Мои документы". В ручеую прописывать не вариант, т.к. папка "Мои документы" может быть настроена по разному. У меня на компе, к примеру, я её настроил на диск D. На других компах она может быть настроена по умолчанию при постановке винды, т.е. c:\Document and Setting\Имя пользователя\Мои документы.
Ответить с цитированием
  #6  
Старый 21.04.2012, 23:06
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от StudentMarat
SetLength(result, lStrLen(PChar(Result)));
Путь получен, добавь к нему маску удаляемого файла.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #7  
Старый 21.04.2012, 23:08
Snake22 Snake22 вне форума
Активный
 
Регистрация: 20.02.2011
Сообщения: 374
Репутация: 744
По умолчанию

Цитата:
Сообщение от StudentMarat
Как узнать путь к папке "Мои документы" я узнал. Вот код:
....
А как сделать так,чтобы удаляла из папки "Мои документы".

немножко напряч мозги =)
путь к папке документы знаем.
теперь
Код:
var path:string;
begin
path:=GetMyDoc;
и дальше в функцию удаления подставляешь свой path и FileMask ставишь *.txt
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 08:01.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025