Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2013, 00:30   #21
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  s : array[ 0..MAX_PATH ] of Char;
begin
  SHGetSpecialFolderPath(0, s, CSIDL_RECENT, False);
  ClearForlder(PChar(IncludeTrailingPathDelimiter(s)));
end;
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...

Последний раз редактировалось Yurk@; 27.03.2013 в 00:32.
Yurk@ вне форума Ответить с цитированием
Старый 27.03.2013, 00:44   #22
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
По умолчанию

а как вывести результат, что есть какие-то документы?
надо узнать количество файлов
эта запись не верна
Код:
procedure TForm1.Button2Click(Sender: TObject);
var
  s : array[ 0..MAX_PATH ] of Char;
  sr:TSearchRec;
begin
  SHGetSpecialFolderPath(0, s, CSIDL_RECENT, False);
  ClearForlder(PChar(IncludeTrailingPathDelimiter(s)));
  Edit1.Text :=  s;
  FindFirst(s,faDirectory or faAnyFile,sr);
  Form1.Memo1.Text:=sr.Name;
//CSIDL_TEMPLATES
//CSIDL_PERSONAL
end;
end.

Последний раз редактировалось beegl; 27.03.2013 в 01:03. Причина: добавил код
beegl вне форума Ответить с цитированием
Старый 27.03.2013, 01:38   #23
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

примерно
Код:
function ClearForlder(Path: PChar; DoDel : boolean = False ) : integer;
var
  SearchRec: TSearchRec;
  FindResult: Integer;
begin
  Result := 0;
  try
    FindResult := FindFirst(Path + '*.*', faAnyFile, SearchRec);
    try
      while FindResult = 0 do
        with SearchRec do
        begin
	if not ((Name = '.') OR (Name = '..')) then
  	begin
    	  if DoDel then
	    DeleteFile(Path + Name);
	  Result := Result + 1;
    	end;
           FindResult := FindNext(SearchRec);
        end;
    Finally
      FindClose(SearchRec);
    end;
  Finally
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  s : array[0..MAX_PATH] of Char;
  i : integer;
begin
  SHGetSpecialFolderPath(0, s, CSIDL_RECENT, False);
  i := ClearForlder(PChar(IncludeTrailingPathDelimiter(s)), False);
  if MessageDlg('В каталоге '+s+' найдено '+ IntToStr(i)+' файлов'
    + #10 + 'Удалить их?', mtConfirmation, [mbYES, mbNO], 0) = mrYES then
    ClearForlder(PChar(IncludeTrailingPathDelimiter(s)), True);
end;
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 27.03.2013, 02:34   #24
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
По умолчанию

в списке всего один документ, а отображает:


Код:
procedure TForm1.Button2Click(Sender: TObject);
var
  s : array[0..MAX_PATH] of Char;
  i : integer;
begin
  SHGetSpecialFolderPath(0, s, CSIDL_RECENT, False);
  ClearForlder(PChar(IncludeTrailingPathDelimiter(s)));
  if MessageDlg('Â êàòàëîãå '+s+' íàéäåíî '+ IntToStr(i)+' ôàéëîâ'
    + #10 + 'Óäàëèòü èõ?', mtConfirmation, [mbYES, mbNO], 0) = mrYES then
    ClearForlder(PChar(IncludeTrailingPathDelimiter(s)));
//CSIDL_TEMPLATES
//CSIDL_PERSONAL
end;
end.
beegl вне форума Ответить с цитированием
Старый 27.03.2013, 08:41   #25
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

beegl, если Вы не изменяли процедуру ClearForlder из пост #23,
то я лично никаких явных косяков не вижу...

попробуйте в отладчике пройтись, посмотреть, какие файлы (и где) находит данная процедура. Возьмите любой НОРМАЛЬНЫЙ файловый менеджер (FAR, например), зайдите в папку xxx..\wertwert\Recent - посмотрите, что там творится реально...



p.s. Имхо, у Windows свои понятия, какие файлы из данной папки Recent отображать, а какие - нет...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как программно узнать адресс путь к папке мои документы и рабочий стол VIR1435 Общие вопросы Delphi 11 08.06.2012 08:24
Here документы _-Re@l-_ PHP 5 04.06.2011 14:38
Лицензия - Какие документы необходимо иметь чтобы законно продавать программу, которую сам написал? Dimarik Софт 11 02.06.2010 22:35
Как склеить документы? drooon Microsoft Office Word 1 04.01.2009 02:28
Как узнать расположение папки мои документы? apromix Win Api 4 08.05.2008 15:04