Delphi временная папка windows
Привет всем!
Возник такой вопрос. Пытаюсь следующим образом путь к временному каталогу Windows:
var tmpPath: array[0..255] of char;
WorkTempFolder: string;
begin
GetTempPath(255,tmpPath);
WorkTempFolder:=StrPas(tmpPath);
end;
так вот, затем в WorkTempFolder он хранится в виде «C:\DOCUME
1\Temp».. Короче, в каком-то dos-виде. Далее программа отказывается работать с таким путем — когда необходимо копировать файлы, то пишет об ошибке. Может, существует другая API-функция, позволяющая получать системные каталоги? (смотрел инфу про SHGetSpecialFolderLocation — позволяет получать многие пути, но только не временной папки). Помогите плз найти выход!
← →
Kerk © ( 2005-01-14 12:04 ) [1]
программе пофиг с каким путем работать.. в дос виде или нет. ошибка в другом
← →
kaZaNoVa © ( 2005-01-14 12:04 ) [2]
function SysDir:String;
var
Buf:array[0..MAX_PATH] of Char;
begin
GetSystemDirectory(@buf, MAX_PATH+1);
Result := buf;
end;
function TempDir:String;
var
Buf:array[0..MAX_PATH] of Char;
begin
GetTempPath(MAX_PATH+1, @buf);
Result := buf;
end;
← →
Антоныч ( 2005-01-14 12:13 ) [3]
Спасибо, заработало. :). А может поясните вкратце, если не сложно, в чем ошибка-то?
← →
Sumor ( 2005-01-14 18:39 ) [4]
Я попробовал и так, и так — результат одинаковый.
Проблема возможно дальше, некоторые функции хотят строку с завершающим нулём, некоторые типа String, и главное не перепутать
Пожалуйста:
function c_GetTempPath: string;
var
Buffer: array[0..1023] of Char;
begin
SetString(Result, Buffer, GetTempPath(Sizeof(Buffer) — 1, Buffer));
end;
И всё работает.
← →
Sumor ( 2005-01-14 20:22 ) [6]
В [4]: Результат одинаковый — читать как «оба варианта функции работали правильно» 🙂
← →
Zuborob ( 2005-01-29 13:04 ) [7]
А не проще ли через переменную-окружение?
ExpandEnvironmentStrings(«%TEMP%», Stroka, 255);
How to get the Windows temporary directory
There are at least two ways to get the Windows temporary directory folder (i.e. that folder in which by convention applications may freely create temporary files):
TEMP environment variable
The TEMP environment variable dates back to the pre-windows days of DOS, but is still used and available in windows applications. By convention both the variables TMP and TEMP indicate the temporary directory. The values of these variables can be easily read using the GetEnvironmentVariable function, i.e.:
- You will need to include SysUtils to use the GetEnvironmentVariable function. The version in SysUtils places a wrapper around the API version of the function defined in the unit Windows (which takes different parameters).
GetTempPath API function
The Windows API function GetTempPath returns the path to the Windows temporary file folder. The GetTempPath function is defined in the Windows unit and its definition looks like:
function GetTempPath(nBufferLength: Cardinal; lpBuffer: PChar): Cardinal;
This takes a buffer and the size of the buffer and writes the temporary folder into the buffer, returning the number of characters written to the buffer.
Personally I don’t find this useful, because I prefer to be able to assign the value to a variable directly. For this reason I use a wrapper function:
This lets you do more intuitive assignments such as
- GetTempPath and MAX_PATH are defined in the unit Windows.
- StrPas is defined in the unit SysUtils .
These notes are believed to be correct for Delphi 6 and Delphi 7 and may apply to other versions as well.
About the author: Brian Cryer is a dedicated software developer and webmaster. For his day job he develops websites and desktop applications as well as providing IT services. He moonlights as a technical author and consultant.
Узнать путь к временным папкам
надо узнать путь к временным папкам.
потом делал через s:=GetEnvironmentVariable(‘temp’); и получается опять только пользовательский темп
Мне надо еще хотябы виндосовский темп и рабочий стол. Помогите плиз
Как Взять Путь Ко Временным Папкам Пользователя В Ос
Всем привет. Вопрос состоит в том как скриптом поднять виндовые временные папки определенные для.
Как правильно узнать путь к «специальным папкам» другого (незалогиненного) пользователя?
Привет ! Есть такие функции, как: SHGetFolderPath SHGetKnownFolderPath (для ОС >= Vista) .
Нужно найти путь к временным файлам Selenium
Привет никак не могу найти путь к временным файлам Selenium 🙁 искал в документации, не нашел :(.
Хочется узнать как сделать временным определённый эффект с C#?
player.GetComponent ().mass = 1.25f; Как сделать чтобы этот эффект длился только.
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.
Путь к папкам и файлам в папке.
Каким образом получить путь текущего каталога? Application.StartupPath? private void.
Простой путь к системным папкам
Прошу прощения т.к такие темы были и не раз, но ответ был всегда в стиле: Дофига всякой ненужной.
Как узнать по какому протоколу выполняется доступ к папкам другого компьютера?
Привет. В институте прохожу предмет сетевые технологии и ума не приложу как узнать через какой.
Cортировка файлов по папкам. Ошибка «Путь файла не поддерживается»
Теперь уже по дате создания. Путь файла не поддерживается. foreach (string filename in files) .
Delphi временная папка windows
Регистрация на форуме тут, о проблемах пишите сюда — alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.
| Регистрация надо узнать путь к временным папкам. var потом делал через s:=GetEnvironmentVariable(‘temp’); и получается опять только пользовательский темп Мне надо еще хотябы виндосовский темп и рабочий стол. Помогите плиз | |||||
Но временная папка стоит особняком. GetTempPath — это единственный способ её получить.
И, кстати, понятия «системная папка Temp» не существует (о чём чёрным по белому сказано в описании GetTempPath). Поэтому не очень понятно, что имеется в виду под «виндосовский темп».
Delphi временная папка windows
Регистрация на форуме тут, о проблемах пишите сюда — alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.
| Регистрация надо узнать путь к временным папкам. var потом делал через s:=GetEnvironmentVariable(‘temp’); и получается опять только пользовательский темп Мне надо еще хотябы виндосовский темп и рабочий стол. Помогите плиз | |||||
Но временная папка стоит особняком. GetTempPath — это единственный способ её получить.
И, кстати, понятия «системная папка Temp» не существует (о чём чёрным по белому сказано в описании GetTempPath). Поэтому не очень понятно, что имеется в виду под «виндосовский темп».