Распечатать страницу

Функции для файлов и директорий в VFP

« Назад

Приведены в табл. 19.2.

Таблица 19.2

Функции для файлов и директорий

Функция

Описание / примеры

ADDBS(cPath)

Возвращает имя пути cPath, в конец которого добавлен обратный слеш (\). Если имя пути cPath не завершается обратным слешем, то он добавлен не будет и функция вернет cPath

&& Нет завершающего обратного слеша
path1 = 'd:\First'
&& Завершающий обратный слеш имеется
path2 = 'd:\Second\'
? Addbs(path1)              && Напечатает: d:\First\
? Addbs(path2)              && Напечатает: d:\Second\

ADIR( )

Помещает информацию о файлах в массив ArrayName и возвращает число файлов, описанных в массиве

CURDIR( )

Возвращает, как и SYS(2003), строку, содержащую имя директории по умолчанию. Имя диска по умолчанию возвращает функция SYS(5)

set default to d:\FoxPrgs
? CurDir( )                          && Напечатает: \FoxPrgs\

DEFAULTEXT(cFileName,
            cDefault)

Если имя файла cFileName указано без расширения, то возвращает имя файла с расширением cDefault, в противном случае имя файла остается неизмененным.
Расширение cDefault задается без точки

fName1 = 'd:\Some\File'
? DefaultExt(fName1, 'exe')
&& Напечатает: d:\Some\File.exe
&&
fName2 = 'd:\Some\File.h'
? DefaultExt(fName2, 'exe')
&& Напечатает: d:\Some\File.h

DIRECTORY(
            cDirectoryName
           
[, nFlags])

Возвращает .T., если указанная параметром cDirectoryName директорию имеется на диске, или .F. – в противном случае. Если cDirectoryName не содержит абсолютного пути, то VFP ищет директорию относительно директории по умолчанию.
Параметр nFlags задает вид возвращаемого значения, когда директория существует и имеет атрибут Hidden или System. Принимает следующие значения:
·          0 – функция вернет .F., если найденная директория имеет атрибут Hidden или System;
·          1 – функция вернет . T., если директория найдена, не принимая во внимание ее атрибуты

DISKSPACE([cVolumeName
           
[, nType]])

Возвращает размер дискового пространства (в байтах) на указанном параметром cVolumeName диске (томе). Если параметр опущен, то берется диск по умолчанию.
Параметр nType задает вид исследуемого дискового пространства и принимает следующие значения:
·          1 – возвращается размер общей дисковой памяти;
·          2 – (по умолчанию) возвращается размер свободной дисковой памяти;
·          3 – возвращается размер свободной дисковой памяти, доступной для вызова нитей.
Функция, в частности, полезна для оценки свободной памяти перед выполнением команды, например SORT, требующей создания временных файлов.
Функция вернет –1, если возникла ошибка чтения диска.
В некоторых сетях значение, возвращаемое DISKSPACE( ) для сетевых дисков, может быть неточным

DISPLAYPATH(cFilename,
            nMaxLength
)

Возвращает укороченное полное имя файла cFilename, пригодное для просмотра. Если имя файла не содержит пути, то он добавляется. Значение добавляемого пути VFP получает в результате употребления CURDIR( ).
Результат не будет превышать nMaxLength символов.
Величина nMaxLength должна быть не менее 10.
Формируя результат, функция не разрывает имени директории, и если включение этого имени приводит к превышению nMaxLength, то оно заменяется на эллипсис (…). Имя файла, если его длина превышает nMaxLength, укорачивается за счет отбрасывания хвостовых избыточных символов.
Функция не проверяет файл на предмет его существования

fName1 = 'd:\Some\To\File.txt'
? DisplayPath(fName1, 15)
&& Напечатает: d:\...\file.txt
&&
? DisplayPath(fName1, 18)
&& Напечатает: d:\...\To\File.txt
&&
fName2 = 'd:\Some\To\LongFileName.lng'
? DisplayPath(fName2, 10)
&& Напечатает: LongFil…

DRIVETYPE(cDrive)

Возвращает число от 1 до 6, означающее тип диска cDrive. Двоеточие в имени диска обязательно.
Смысл результата функции следующий:
·          1 – тип не определен;
·          2 – гибкий диск;
·          3 – жесткий диск;
·          4 – сменный или сетевой диск;
·          5 – CD-ROM;
·          6 – RAM-диск (из-за большого числа типов RAM-дисков результат может быть неточным)

FDATE(cFileName
            [, nType])

Возвращает дату или дату и время последнего изменения файла, имеющего имя cFileName. Имя файла может включать путь. Если путь не указан, то VFP ищет файл в директории по умолчанию, а затем в директориях, заданных SET PATH.
Если nType = 0 или опущен, то функция вернет дату; если nType = 1, то функция вернет дату и время

FILE(cFileName [, nFlags])

Возвращает .T., если файл, заданный параметром cFileName, найден, или .F. – в противном случае. Параметр cFileName может вместе с именем файла содержать путь. Если путь отсутствует, то файл прежде ищется в директории по умолчанию, а затем в директориях, заданных командой SET PATH.
Параметр nFlags задает вид результата, когда существующий файл имеет атрибут Hidden или System. Принимает следующие значения:
·          0 – функция возвращает .F., если файл найден, но имеет атрибут Hidden или System;
·          1 – функция возвращает .T., если файл найден; атрибут файла не имеет значения

set path to Home(7)
if File('FoxUser.dbf')
      wait window 'VFP файл ресурсов существует'
else
      wait window 'VFP файл ресурсов отсутствует'
endif

FORCEEXT(cFileName,
            cExtension)

Возвращает имя файла cFileName, в котором старое расширение заменено на новое cExtension

fName1 = 'd:\Some\File'
? ForceExt(fName1, 'exe')
&& Напечатает: d:\Some\File.exe
fName2 = 'd:\Some\File.h'
? ForceExt(fName2, 'exe')
&& Напечатает: d:\Some\File.exe

FORCEPATH(cFileName,
            cPath)

Возвращает имя файла cFileName, в котором старый путь заменен на новый cPath

fName = 'd:\Some\File.exe'
? ForcePath(fName, 'd:\New')
&& Напечатает: d:\New\file.exe

FTIME(cFileName)

Возвращает строку, содержащую время последнего изменения файла, имеющего имя cFileName. Имя файла может включать путь. Если путь не указан, то VFP ищет файл в директории по умолчанию, а затем в директориях, заданных SET PATH

FULLPATH(cFileName1
           
| cFileName2])

Возвращает строку, содержащую полное имя файла cFileName1.
Если cFileName1 – это полное имя файла, то функция вернет cFileName1.
Если cFileName1 – это имя файла без пути, а параметр cFileName2 либо опущен, либо задан как имя файла без пути, то функция вернет cFileName1, добавив к нему директорию по умолчанию.
Если cFileName1 – это имя файла без пути и если задан параметр cFileName2 как полное имя файла, то функция вернет cFileName1, добавим к нему путь файла cFileName2

f1 = 'd:\Dir1\File1.x1_'
f11= 'File11.x11'
f2 = 'd:\Dir2\File2.x2_'
f22 = 'File22.x22'
&& Создаем директорию d:\Dir3
md d:\Dir3
set default to d:\Dir3
? FullPath(f1)                 && Напечатает: d:\Dir1\File1.x1_
? FullPath(f11)               && Напечатает: d:\Dir3\File11.x11
? FullPath(f11, f2)         && Напечатает: d:\Dir2\File11.x11
? FullPath(f11, f22)       && Напечатает: d:\Dir3\File11.x11
&& Удаляем директорию d:\Dir3
&& Удаляемая директория не должна быть текущей
set default to Home( )
rd d:\Dir3

GETDIR([cDirectory
           
[, cText [, cCaption
           
[, nFlags [, lRootOnly]]]]])

Отображает диалог выбора директории и возвращает полное имя выбранной директории. Описана в разд. 19.4

GETFILE([cFileExtensions]
            [, cText]
            [, cOpenButtonCaption]
            [, nButtonType]
            [, cTitleBarCaption])

Отображает диалог "Открыть файл" и возвращает имя выбранного файла. Описана в разд. 19.4

GETPICT([cFileExtensions]
            [, cFileNameCaption]
            [, cOpenButtonCaption])

Отображает диалог "Открыть рисунок" и возвращает имя выбранного рисунка. Описана в разд. 19.4

HOME([nLocation])

Возвращает имя VFP или Visual Studio (VS) директории. Параметр nLocation задает вид возвращаемого функцией результата; Принимает следующие значения:

nLocation

Вид результата

0

Директория, из которой запускается VFP (по умолчанию)

1

Директорию, в которой VFP инсталлирован

2

Директория, содержащая примеры употребления VFP; то же значение хранит системная переменная _SAMPLES

3

VS Common-директория

4

VFP Graphics-директория

5

VS MSDN-директория

6

VS Tools-директория

7

Директория VFP в папке Application Data пользователя

8

Директория VFP в папке "Мои документы" пользователя

Замечание. Предполагается, что сохранены директории, создаваемые при установке VFP

JUSTDRIVE(cFileName)

Извлекает имя диска из полного имени файла cFileName. Полное имя файла не должно превышать 259 символов

fName = 'd:\Some\Path\To\File.txt'
? JustDrive(fName)            && Напечатает: d:
? JustExt(fName)               && Напечатает: txt
? JustFname(fName)          && Напечатает: file.txt
? JustPath(fName)              && Напечатает: d:\Some\Path\To
? JustStem(fName)             && Напечатает: File

JUSTEXT(cFileName)

Извлекает 3-буквенное расширение из полного имени файла cFileName

JUSTFNAME(cFileName)

Извлекает имя файла из полного имени файла cFileName

JUSTPATH(cFileName)

Извлекает путь из полного имени файла cFileName

JUSTSTEM(cFileName)

Извлекает имя файла без расширения из полного имени файла cFileName

LOCFILE(cFileName
           
[, cFileExtensions]

            [, cFileNameCaption])

Находит файл на диске и возвращает полное имя файла. Если файл не найден, открывает диалог выбора файла. Описана в разд. 19.4

PUTFILE([cCustomText]
            [, cFileName]
            [, cFileExtensions])

Открывает диалог "Сохранить как" и возвращает заданное в нем имя файла. Описана в разд. 19.4

SYS(5)

Возвращает строку, содержащую имя диска по умолчанию

set default to d:\FoxPrgs
? Sys(5)                               && Напечатает: D:

SYS(2003)

Возвращает, как и CURDIR( ), строку, содержащую имя директории по умолчанию

SYS(2004)

Возвращает имя директории, из которой стартовал VFP. В самостоятельных приложениях возвращает директорию расположения файла Vfp8r.dll или Vfp8t.dll

SYS(2020)

Возвращает строку, содержащую общий размер (в байтах) диска по умолчанию, устанавливаемого командой SET DEFAULT