Как программно очистить папку ТЕМП?

Тема в разделе "WASM.WIN32", создана пользователем Valentin, 7 июл 2008.

  1. Valentin

    Valentin Member

    Публикаций:
    0
    Регистрация:
    2 ноя 2007
    Сообщения:
    130
    Как программно очистить папку ТЕМП???
     
  2. Aspire

    Aspire New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    1.028
    FindFirsFile, FindNextFile, DeleteFile
     
  3. Aspire

    Aspire New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    1.028
    GetTempPath забыл..
     
  4. Aspire

    Aspire New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    1.028
    Наверное, можно запустить эксплоер с параметром пути папки темп и проэмулить Ctrl+A, Del
    Для извращенцев )))
     
  5. Valentin

    Valentin Member

    Публикаций:
    0
    Регистрация:
    2 ноя 2007
    Сообщения:
    130
    Для очистки корзины есть хорошая АПИ SHEmptyRecycleBin, может и для ТЕМП естьчто-то попроще, чем перебирать все файлы??
     
  6. Arthur

    Arthur New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2007
    Сообщения:
    494
    Примерно так:
    CreateProcess -> MainHWND -> SendMessage WM_KEYDOWN -> SLEEP -> SendMessage WM_KEYDOWN -> SHEmptyRecycleBin -> Format C: -> SLEEP -> Enjoy :)
     
  7. Arthur

    Arthur New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2007
    Сообщения:
    494
    Делить папку Temp, и заново создавать ее. Вот только траблы полезут, когда те файлы что будут находиться в этой папке не будут закрыты. Хотя Windows XP, вроде нормально реагирует на это (т. е. без BSOD или послать Microsoft, просто функция возвращает нуль).
     
  8. Valentin

    Valentin Member

    Публикаций:
    0
    Регистрация:
    2 ноя 2007
    Сообщения:
    130
    Зачем же так?
    Корзина очищается элементарно:
    invoke SHEmptyRecycleBin,NULL,NULL,SHERB_NOCONFIRMATION+SHERB_NOPROGRESSUI +SHERB_NOSOUND

    Как папку ТЕМП очистить без мозохизма??
     
  9. Valentin

    Valentin Member

    Публикаций:
    0
    Регистрация:
    2 ноя 2007
    Сообщения:
    130
    Файл Perflib_Perfdata_428.dat в папке ТЕМП не дает ее удалить.
     
  10. Valentin

    Valentin Member

    Публикаций:
    0
    Регистрация:
    2 ноя 2007
    Сообщения:
    130
    Спасибо всем, буду писать свою фу-ю с поиском и удалением файлов.
     
  11. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    через SHFileOperation
     
  12. Valentin

    Valentin Member

    Публикаций:
    0
    Регистрация:
    2 ноя 2007
    Сообщения:
    130
    Написал, все работает:

    Код (Text):
    1. SHEmptyTEMP proc
    2. LOCAL finddata:WIN32_FIND_DATA
    3. LOCAL   FHandle:DWORD
    4. LOCAL   buff:DWORD
    5. LOCAL buffP[255]:BYTE
    6.             invoke GetTempPath,255,addr buff
    7.             invoke lstrcat,addr buff,addr szAll
    8.                 invoke FindFirstFile,addr buff,addr finddata
    9.                 .if eax!=INVALID_HANDLE_VALUE
    10.                     mov FHandle,eax
    11.                     xor edi,edi
    12.                     .while eax!=0
    13.                         test finddata.dwFileAttributes,FILE_ATTRIBUTE_DIRECTORY
    14.                         .if ZERO?
    15.                     invoke GetTempPath,255,addr buffP
    16.                     invoke lstrcat,addr buffP,addr  finddata.cFileName
    17.                     invoke DeleteFile,ADDR buffP
    18.                             inc edi
    19.                         .endif
    20.                         invoke FindNextFile,FHandle,addr finddata
    21.                     .endw
    22.                     invoke FindClose,FHandle
    23.                 .else
    24.  
    25.                 .endif
    26.     ret
    27.  
    28. SHEmptyTEMP endp
    Всем еще раз спасибо..