Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 1 146

/ вопрос открыт /

Здравствуйте, эксперты!
Как при помощи API функций произвести очистку Коризны, Папки Temp и списка недавних документов?

Jake Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Jake (статус: Посетитель)
Вопрос отправлен: 28 ноября 2007, 12:13
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Feniks

Здравствуйте, Jake!
Для папки Temp можно так делать:

var
   sr   : TSearchRec;
   TempDir : packed array [0..MAX_PATH] of Char;
 
begin
   GetTempPath(MAX_PATH, TempDir);
   if FindFirst(TempDir + 'MyApp*.tmp', faAnyFile, sr) = 0 then
      try
         repeat
            DeleteFile(TempDir + sr.Name);
         until FindNext(sr) <> 0;
      finally
         FindClose(sr);
      end;
end;
А для работы с корзиной есть API функции в модуле 'shell32.dll':
function SHEmptyRecycleBin(hwnd: HWND; pszRootPath: PChar;
   dwFlags: DWORD): HRESULT; stdcall;
   external 'shell32.dll' name 'SHEmptyRecycleBinA';
 
function SHQueryRecycleBin (pszRootPath: PChar;
   var SHQueryRBInfo: TSHQueryRBInfo): HRESULT; stdcall;
   external 'Shell32.dll' name 'SHQueryRecycleBinA';
Могу дать пример по второй функции, т.е. как узнать о содержимом корзины...

Ответ отправил: Feniks (статус: Бакалавр)
Время отправки: 28 ноября 2007, 12:24


Мини-форум вопроса

Всего сообщений: 1; последнее сообщение — 28 ноября 2007, 12:39; участников в обсуждении: 1.
Feniks

Feniks (статус: Бакалавр), 28 ноября 2007, 12:39 [#1]:

А по поводу папки "Недавние документы", можно использовать метод как для Temp папки, только сначало надо определить путь к ней, а для этого есть API функции. Вырезка из одной статьи...
Некоторые папки имеют особое значение для оболочки. Для нахождения этих специальных папок, а также для того, чтобы пользователь мог сам искать необходимые ему папки, оболочка предоставляет специализированный набор функций: SHGetDesktopFolder Возвращает ин терфейс IShellFolder объекта-папки "Рабочий стол" (Desktop);

SHGetSpecialFolderLocation Возвращает указатель на список идентификаторов специального объекта-папки.
SHBrowseForFolder Проводит диалог с пользователем и возвращает указатель на список идентификаторов выбранного пользователем объекта-папки; SHGetSpecialFolderPath Версия 4.71. Возвращает путь файловой системы для специального объекта-папки. Функция предназначена для работы со специальными папками, а не для работы с виртуальными.
При отсутствии нужной папки может, по требованию приложения, её создавать.
Для указания необходимой специальной папки функции SHGetSpecialFolderLocation и SHGetSpecialFolderPath принимают в качестве параметра одно из ниже указанных значений:
<-- урезано для трафика --->
CSIDL_RECENT Документы (Documents); Каталог файловой системы, содержащий в себе ссылки на самые последние документы, с которыми недавно работал пользователь.
<-- урезано для трафика --->
Необходимо отметить, что эти функции недавно были выделены в отдельную библиотеку - shfolder.dll.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:51
Выполнено за 0.03 сек.