Сборник по задачам и примерам Assembler



         

Определение и изменение текущего каталога



Определение и изменение текущего каталога

Аналогично принципам организации файловой системы MS DOS в Win32 также Иуществует понятие текущего каталога, то есть каталога, в котором выполняются ^шеущие операции по работе с файлами. В отличие от MS DOS понятие текуще-^^Италога относится к текущему процессу. При запуске процесса текущим бу-I дет являться каталог, из которого этот процесс был запущен. Определяет текущий налог процесса функция GetCurrentDirectory.

RD GetCurrentDirectory(OWORD nBufferLength, LPTSTR ipBuffer);

it Параметры TpBuffern и BufferLength определяют соответственно адрес и длину I буфера, в который помещается путь с текущим каталогом (строка с завершаю-Нцим нулем). Функция возвращает NULL в случае ошибки и число байтов, необходимо для записи данных в буфер, в случае удачного завершения. Завершающий ^ нуль в возвращаемом функцией числе не учитывается. Если буфер мал, то с помощью возвращаемого значения можно изменить его размер. [ Изменить текущий каталог процесса можно с помощью функции SetCurrent-^Brectory.

¦6001 SetCurrentDi rectory (LPCTSTR IpszPathName): "

j" Параметр IpszPathName — адрес ASCIIZ-строки с путем, последний элемент ко-I торою — новый текущий каталог данного процесса.

[i Платформа Win32 также поддерживает понятие системного и основного ка-^ВДога Windows. Для определения системного каталога существует специальная |; функция GetSystemDi rectory.

[ GetSystemDirectory(LPTSTR ipszBuffer, UINT uSize):

Два параметра этой функции определяют адрес и размер буфера, в который I записывается путь к системному каталогу Windows.

„Для определения основного каталога Windows существует специальная функция

GetWindowsDi rectory.-

UINT GetWindowsDirectorydPTSTR IpBuffer. UINT uSize);

Два параметра этой функции определяют адрес и размер буфера, в которыйзаписывается путь к основному каталогу Windows. Возвращаемое значение количество реально записанных в буфер байтов. Его можно использовать для г корректировки параметра uSize, если он был задан слишком маленьким, и повторного вызова функции GetWindowsDi rectory.




Содержание  Назад  Вперед