Файл TMP – что это такое – как открыть или удалить
Файл TMP – это временный файл, автоматически создаваемый программой, которая обычно заполняет его данными резервной копии. Время от времени он создается как необнаружимый файл и регулярно стирается при закрытии программы. Файлы TMP также могут временно содержать данные, пока создается другой файл.
Файлы TMP могут хранить различные виды данных. Обычно TMP-файлы – это просто переименованные файлы разных типов. Именно поэтому часто трудно открыть файл TMP, не понимая, что именно находится внутри него.
Как открыть файл TMP
Файлы TMP стираются рабочей системой, когда они больше не используются. Как бы то ни было, в некоторых случаях они могут быть оставлены системой и «пожирать» дисковое пространство. Приложения и рабочие системы, по большей части, создают временные файлы для конкретного сеанса, подразумевая, что файлы создаются и используются по-отдельности во время текущего использования приложения или рабочей системы. Windows закрывает временные файлы, созданные системой, когда она закрывается, как и большинство приложений, которые используют временные файлы.
Во время установки некоторые приложения используют временные файлы, а не занимают место на жестком диске системы. Это основная мотивация того, почему проектам требуется достаточно места для временных файлов в определенной области на ПК.
Далее мы приводит некоторые рабочие шаги, чтобы открыть файл TMP:
Как восстановить файл TMP
В системе Windows вы должны выполнить следующие простые шаги для восстановления файла TMP:
Технические сведения о файлах TMP
Файлы TMP содержат необработанную информацию. Эта необработанная информация представляет собой промежуточный шаг между преобразованием файла и созданием.
Файлы TMP становятся избыточными, если выполнена конфигурация целевого файла или программа, создавшая файл временного хранилища, закрыта. Файлы TMP обычно создаются, когда программе требуется больше памяти для выполнения задачи. В частности, программы, которые управляют большим количеством информации, такие как программы редактирования звука или видео, часто нуждаются в создании файлов TMP.
Типы файлов, похожие на TMP
Вы можете открывать файлы TMP, используя редактор содержимого или hex-редактор. В случае, если данные внутри файла TMP являются читаемыми, у вас будет возможность увидеть и понять, что скрыто внутри. Файлы TMP могут содержать введение или определение данных и другую информацию, которые помогут найти совместимое приложение.
Удалить, переместить, переименовать его ничем не возможно.
Определить, какой процесс его создает, тоже не получается.
«Методом тыка» и путем «гугления» проблемы, путем проб и ошибок, было найдено, что этим процессом является драйвер.
Короче, с какой-то программой, даже не знаю какой, установился алладиновский драйвер защиты Driver Sentinel HASP.
Если проделать операции Диспетчер устройств >>> Вид >>> Показать скрытые устройства >>> Драйверы несамонастраиваемых устройств >>> aksdf >>> Свойства >>> Драйвер >>> Остановить, то файл C:\Windows\Temp\TmpFile1 сразу же исчезает, но при включении драйвера он сразу же появляется опять.
Так же, когда у меня стоял Kaspersky Cristal, какой-то один из его драйверов так же создавал в папке C:\Windows\Temp какие-то файлы, которые так же удалить, переместить, переименовать было невозможно, которые так же сами исчезали после отключения драйвера и появлялись после включения.
Вот и основной вопрос: «Как программно, не «методом тыка», не «гуглением», а средствами Windows, определить, каким процессом занят файл, если этим процессом является драйвер?»
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Вроде нашел путь, как это сделать, с помощью Вадима Стеркина и его советов:
Драйвер – это системный процесс, и сторонних утилит, способных копаться в системных процессах, практически нет. Помочь моли бы Microsoft (а оно ей надо) или Марк Руссинович, и его утилита Process Monitor.
Если коротко, то методика такая: — Ставим фильтр на путь: C:\Windows\Temp\TmpFile1 — Ставим галочку Enable Boot Logging (Включить лог загрузки) — Указываем путь сохранения лога — Перезагружаемся — Исследуем загрузочный лог
Как создать временный файл на PHP, когда функция tmpfile() не подходит
Когда PHP-программисту необходимо создать временный файл, он в мануале находит функцию tmpfile() и после изучения примеров начинает думать, как её лучше применить. Так было и со мной, когда мне потребовалось выгрузить данные сразу во временный файл, а не работать с ними через переменную. Но с файлом, созданным таким образом, в дальнейшем неудобно работать в силу того, что tmpfile() возвращает дескриптор, а не ссылку на локальный файл. Давайте немного углубимся в анатомию временного файла и рассмотрим подводные камни, с которыми мне пришлось столкнуться.
Временные файлы в PHP нужны, например, для загрузки большого количества данных из сети или выгрузки данных из БД. Сохранять мега- или гигабайты дынных в переменной не самая лучшая идея, поскольку потребление памяти интерпретатором и сервером ограничено. Лучшим вариантом является сохранение данных на диске и удаление их по результату обработки. Функция tmpfile() именно так и работает, но в PHP существуют и другие нативные способы, с помощью которых можно организовать работу с временными данными:
Получаем URI временного файла
Какие значения возвращает stream_get_meta_data() хорошо описано в документации, но нас больше интересует абсолютный путь к файлу, связанный с потоком. Его можно извлечь по ключу uri из полученного массива:
Получив абсолютный путь к временному файлу вы можете пользоваться привычными интерфейсами для работы с данными через файл: symfony/filesystem, symfony/http-foundation, thephpleague/flysystem или нативными PHP-функциями.
Проблемы функции tmpfile()
К сожалению, сохранить временный файл через rename() не получится, т. к. tmpfile() для Windows накладывает блокирующий режим и файл будет всё ещё занят другим процессом. В UNIX-системах такой проблемы нет, здесь временный файл можно удалять ещё до закрытия ресурса. Другими словами, для Windows вызов rename() до fclose() приведёт к ошибке:
Создание временного файла
Полагаться на __destruct() плохая идея, т. к. в языках с автоматическим управлением памятью, нельзя быть уверенным на 100% в том, когда он выполнится. Деструктор не должен оставлять объект в нестабильном состоянии, поэтому в PHP обработчики уничтожения и освобождения объекта отделены друг от друга. Обработчик освобождения вызывается, когда движок полностью уверен, что объект больше нигде не применяется.
Для гарантированного удаления временного файла мы можем зарегистрировать свою функцию, которая выполнится в любом случае после завершения скрипта. Делается это с помощью register_shutdown_function() в конструкторе нашего класса:
Мы вынесли обработчик удаления временного файла в статическое замыкание, чтобы отвязать все ссылки от объекта и сохранить вызов __destruct до register_shutdown_function :
Класс TmpFile избегает ситуации, когда на него по умолчанию открыт дескриптор. Теперь можно использовать rename() вместо copy() и не бояться, когда при сохранении временных данных в другой файл на диске хранится две копии до завершения скрипта. Главное не держать открытый дескриптор, чтобы rename() наверняка отработала в Windows.
Также мы получили возможность типизировать временный файл и декларировать его тип через конструктор или методы классов, чтобы быть увереным, что приходит временный файл, а не строка, т. к. в PHP нет валидации на тип resource в сигнатурах.
Пример с загрузкой файлов
Ниже реальный юзкейс, в котором функция tmpfile() не подходит в силу уничтожения временного файла после закрытия ресурса или невозможности использовать rename() для перемещения файла. В этом случае нужно было вернуть временный файл в объекте File из пакета symfony/http-foundation в код, у которого строгая зависимость от этого класса File. Код ниже загружает файл как временный, валидирует его и сохраняет на диске:
Бизнес-логика предполагала валидацию файла на другом уровне и здесь важно было позаботиться об удалении файла в самом начале его пути, если проверка будет провалена. С помощью функции register_shutdown_function() мы можем гарантировать, что временный файл будет удалён, когда скрипт завершится. В сниппете ниже приведён пример того, как был использован класс TmpFile вместо tmpfile() :
В коде создаётся объект временного файла, открывается на него дескриптор и через cURL выкачивается файл по ссылке. Обработка HTTP-статусов и другие параметры cURL в этом сниппете не указаны. В итоге мы закрываем все дескрипторы и отправляем временный файл в нужной обёртке. Решить этот юзкейс через функцию tmpfile() было бы невозможно.
Временный файл в CLI и try-finally
В вебе запросы пользователей живут относительно недолго, но в CLI скрипты могут выполняться бесконечно и гарантировать выполнение функции register_shutdown_function() мы не можем. Скрипт может быть убит на системном уровне или выполнятся так долго, что все временные файлы останутся лежать без их финальной обработки. В консоле лучшим способом удаления временных файлов является использование конструкции try-finally :
Чем класс TmpFile отличается от tmpfile()
На основе идей из этой статьи, я написал менеджер для управления временными файлами, который доступен в репозитории denisyukphp/tmpfile-manager. Менеджер умеет много полезного: 1) настраивать путь к папке с временными файлами; 2) задавать префикс временным файлам; 3) закрывать отрытые ресурсы на временные файлы; 4) автоматически или вручную очищать временные файлы; 5) запускать свой сборщик мусора.
Вы можете использовать TmpFile независимо от менеджера, но TmpFileManager позволяет получить больше контроля над временными файлами и может гарантировать их удаление.
Можно ли (и нужно ли) удалять содержимое папки TEMP?
В папке TEMP хранятся временные файлы, которые занимают немало места. Стоит ли их удалять, не случится ли чего страшного?
Одна из самых распространенных проблем, с которой сталкиваются начинающие пользователи — нехватка места в системном разделе. Под нужды Windows, как правило, выделяется немного места относительно других разделов, на которых хранятся игры и мультимедиа-файлы. Это приводит к тому, что операционная система начинает тормозить. Чтобы этого избежать, необходимо понимать, что именно съедает свободные гигабайты на системном разделе.
Где находится папка «Temp» и для чего она нужна
Для того, чтобы обнаружить папку «Temp», нужно сделать скрытые файлы видимыми.
В Windows 7 искомая папка находится по адресу: C:\Users\Имя учетной записи\AppData\Local\Temp
Как очистить папку «Temp»
Можно воспользоваться одним из трех способов.
Нюансы и рекомендации
Если во время удаления система выдает уведомление об ошибке, пропустите файлы, на которые ОС ругается. Такое происходит из-за того, что некоторые временные данные используются непосредственно сейчас, и удалить их не получится. Если вы посмотрите объем папки «Temp» и сравните его с объемом временных файлов в утилите «Очистка диска», то обратите, что в программе он немного меньше. Это как раз связано с данными, используемыми в реальном времени. Windows их не учитывает.
В целом, рекомендуется проводить очистку раз в полгода, но всё зависит в большей степени от интенсивности пользования компьютером, а также многообразия установленных программ. Впрочем, если проблем с местом на системном разделе вы не испытываете, то можно сократить периодичность очистки.
В вашей системе запущено много процессов, которые потребляют ресурсы процессора и памяти. Некоторые из этих процессов, кажется, являются вредоносными файлами, атакующими ваш компьютер. Чтобы исправить критические ошибки tmpfile1.exe,скачайте программу Asmwsoft PC Optimizer и установите ее на своем компьютере
1- Очистите мусорные файлы, чтобы исправить tmpfile1.exe, которое перестало работать из-за ошибки.
2- Очистите реестр, чтобы исправить tmpfile1.exe, которое перестало работать из-за ошибки.
3- Настройка Windows для исправления критических ошибок tmpfile1.exe:
Всего голосов ( 181 ), 115 говорят, что не будут удалять, а 66 говорят, что удалят его с компьютера.
Как вы поступите с файлом tmpfile1.exe?
Некоторые сообщения об ошибках, которые вы можете получить в связи с tmpfile1.exe файлом
(tmpfile1.exe) столкнулся с проблемой и должен быть закрыт. Просим прощения за неудобство.
(tmpfile1.exe) перестал работать.
tmpfile1.exe. Эта программа не отвечает.
(tmpfile1.exe) — Ошибка приложения: the instruction at 0xXXXXXX referenced memory error, the memory could not be read. Нажмитие OK, чтобы завершить программу.
(tmpfile1.exe) не является ошибкой действительного windows-приложения.
(tmpfile1.exe) отсутствует или не обнаружен.
TMPFILE1.EXE
Проверьте процессы, запущенные на вашем ПК, используя базу данных онлайн-безопасности. Можно использовать любой тип сканирования для проверки вашего ПК на вирусы, трояны, шпионские и другие вредоносные программы.
процессов:
Cookies help us deliver our services. By using our services, you agree to our use of cookies.