Временные файлы TC

Только для тех, кто пишет плагины под Total Commander. Обмен опытом, решение проблем.

Модераторы: Моторокер, Avada, CaptainFlint, Nik, d-view

Ответить
Oleg_Y
Сообщения: 3
Зарегистрирован: Пт ноя 17, 2006 18:01
Откуда: Chicago

Временные файлы TC

Сообщение Oleg_Y »

TC сохраняет временные файлы в разных местах:
- при открытии файла по F3 - в C:\WINDOWS\TEMP\_tc\<имяФайла>;
- при поиске по Alt-F7 с установленным флагом "Find text" - в папке C:\WINDOWS\TEMP с временным именем и расширением "tmp".
Но это я выяснил "экспериментально", для конкретной версии TC и для определенной конфигурации переменных окружения (у меня на компе и system и user переменные TEMP и TMP указывают на C:\WINDOWS\TEMP). Подозреваю, что при другой конфигурации TEMP/TMP и/или другой версии TC результат может отличаться.

Можно ли узнать расположение временных папок TC из его настроек?
Мне это нужно для wfx плагина.
vserd
Сообщения: 118
Зарегистрирован: Вт апр 26, 2005 16:54

Сообщение vserd »

А что мешает, кроме религии, получить путь к временной папке через GetEnviropmentVariable и использовать ее?
Oleg_Y
Сообщения: 3
Зарегистрирован: Пт ноя 17, 2006 18:01
Откуда: Chicago

Сообщение Oleg_Y »

Атеисту ничего не мешает :D

Весь вопрос в том, какие переменные использовать?
TEMP или TMP? User или System?
Это же определяется в TC.
Вот я и хочу знать, есть ли доступ к этой информации через настройки TC или через вызов его внутренних команд.
vserd
Сообщения: 118
Зарегистрирован: Вт апр 26, 2005 16:54

Сообщение vserd »

Доступа нет. Так как не нужно. В Win API есть такая функция GetTempPath, и нормальные программеры если нужно место под временные файлы используют ее, с учетом описания функции.
The GetTempPath function does not verify that the directory specified by the TMP or TEMP environment variables exists. The function gets the temporary file path as follows:

The path specified by the TMP environment variable.
The path specified by the TEMP environment variable, if TMP is not defined.
The Windows directory, if both TMP and TEMP are not defined.


Windows Me/98/95: The GetTempPath function gets the temporary file path as follows:

The path specified by the TMP environment variable.
The path specified by the TEMP environment variable, if TMP is not defined or if TMP specifies a directory that does not exist.
The current directory, if both TMP and TEMP are not defined or specify nonexistent directories.
Worros
Сообщения: 1123
Зарегистрирован: Пт янв 19, 2007 18:46

Сообщение Worros »

Чего уж проще. Запросить значение переменной %Commander_INI% , как указывал Vserd. Получишь истинный используемый wincmd.ini. Из него прочитаешь ключ WipeDir= секции [configuration]. Это и есть тоталовский темп. Если не задан , прочитать системный темп TEMP. Всё.
%Commander_INI% поддерживается в ТС не ниже 6.55 или 6.56, а другие поддерживать и незачем. Успехов.
Oleg_Y
Сообщения: 3
Зарегистрирован: Пт ноя 17, 2006 18:01
Откуда: Chicago

Сообщение Oleg_Y »

Спасибо!
Ответить