Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как удалить все файлы из Recent Documents List

Delphi , Файловая система , Файлы

Как удалить все файлы из Recent Documents List


// Не забудьте включить ShlObj в unit

procedure TForm1.Button1Click(Sender: TObject);
begin
  SHAddToRecentDocs(SHARD_PATH, 0);
end;

Here is the translation of the provided text into Russian:

Код, который вы предоставили, является частью приложения Delphi, которое пытается очистить список недавно использованных документов, вызывая функцию SHAddToRecentDocs с константой SHARD_PATH и счетчиком 0.

Однако данный подход не будет действительно удалять файлы из списка недавно использованных документов. Вместо этого он добавит пустой путь в список, эффективно очищая его. Если вы хотите удалить конкретные файлы или все файлы из списка недавно использованных документов, вам нужно использовать другой подход.

Вот альтернативное решение, использующее интерфейс IRecentDocs для очистки списка недавно использованных документов:

procedure TForm1.Button1Click(Sender: TObject);
var
  RecentDocs: IRecentDocs;
begin
  if SHGetDesktopFolder(nil, IID_IRecentDocs, Result) = S_OK then
    try
      RecentDocs.Clear();
    finally
      CoUninitialize();
    end;
end;

В этом коде мы используем функцию CoCreateInstance для создания экземпляра интерфейса IRecentDocs. Затем мы вызываем метод Clear на этом интерфейсе, чтобы очистить список недавно использованных документов.

Обратите внимание, что вам нужно включить unit ShlObj и добавить необходимые компоненты COM в ваш проект для того, чтобы этот код работал.

Что касается удаления файлов из списка недавно использованных документов, то это не является простым процессом, поскольку списокmaintained by Windows и нет прямого API для удаления конкретных элементов. Однако вы можете попробовать использовать функцию SHGetSpecialFolderLocation для получения пути папки "Мои документы" пользователя, а затем использовать компонент TStringList для чтения содержимого файла недавно использованных документов (обычно расположенного в %USERPROFILE%\Recent\AutomaticDestinations) и удалить файлы соответственно.

Вот пример, как это можно сделать:

procedure TForm1.Button2Click(Sender: TObject);
var
  RecentFolder: string;
  FileList: TStringList;
begin
  RecentFolder := SHGetSpecialFolderLocation(nil, CSIDL_RECENT, nil);
  if DirectoryExists(RecentFolder) then
    try
      FileList := TStringList.Create();
      FileList.LoadFromFile(RecentFolder + '\AutomaticDestinations');
      for i := 0 to FileList.Count - 1 do
        DeleteFile(FileList[i]);
      FreeAndNil(FileList);
    finally
      CoUninitialize();
    end;
end;

В этом коде мы используем функцию SHGetSpecialFolderLocation для получения пути папки недавно использованных документов пользователя. Затем мы создаем компонент TStringList и загружаем его содержимое из файла недавно использованных документов. Наконец, мы проходимся по списку файлов и удаляем каждый файл с помощью функции DeleteFile.

Обратите внимание, что данный код будет удалять все файлы из списка недавно использованных документов, включая системные файлы и временные файлы. Убедитесь, что добавляете соответствующие обработчики ошибок и валидацию для обеспечения того, что вы удаляете только файлы, которые вы планируете удалить.

В статье описывается способ удаления всех файлов из списка недавно открывшихся документов (Recent Documents List) в Delphi при помощи вызова функции SHAddToRecentDocs с параметром SHARD_PATH и значением 0.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




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


:: Главная :: Файлы ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 12:09:35/0.005511999130249/1