Другие функции для работы с файлами
В целом средства системы Mathematica обеспечивают возможности работы с различными файлами, присущие MS-DOS, без выхода из среды системы. Относящиеся к этой группе функции даны в приложении. Для этих функций характерно, что в момент выполнения они не дают видимого эффекта. К таким функциям относятся функции копирования директорий и файлов, смены их имен, удаления и т. д. Они хорошо известны пользователям MS-DOS и могут выполняться из среды Mathematica.
Рассматривая обширный список файловых и поточных операций, можно поневоле сделать вывод об их избыточности. Но здесь действует простое правило: не хочешь применять эти функции – не применяй! Они рассчитаны на пользователя, всерьез занимающегося стыковкой систем Mathematica с другими программными системами.
Важное место занимают функции, дающие информацию о директориях, файлах и потоках. К ним относятся следующие функции:
- Directory [ ] – возвращает текущий рабочий каталог;
- DirectoryStack [ ] – возвращает содержимое стека каталогов, которое представляет последовательность используемых в текущем сеансе каталогов;
- $Display – возвращает список файлов и каналов (pipes– канал или абстрактный файл), используемый функцией вывода $DisplayFunction по умолчанию;
- FileByteCount ["filename"] – возвращает количество байтов в файле;
- FileDate ["filename"] – возвращает дату и время последней модификации файла в виде списка;
- Filelnformation ["filename"] – возвращает информацию о файле;
- FileNames [ ] – приводит список всех файлов в текущем рабочем каталоге;
- FileNames [" form" ] – перечисляет все файлы в текущем рабочем каталоге, чьи имена совпадают с шаблоном form;
- FileNames [{ "form1", "form2",…} ] – перечисляет все файлы, чьи имена соответствуют любому из шаблонов formi;
- FileNames [forms, {"dir1", "dir2",…} ] – перечисляет файлы с именами, соответствующими шаблонам forms, в любом из указанных каталогов diri;
- FileType ["filename"] – возвращает тип файла: File, Directory или None (если указанного файла не существует);
- $HomeDirectory – дает имя "домашней" директории пользователя;
- $Output – дает список файлов и каналов, в которые направляется стандартный вывод системы Mathematica;
- ParentDirectory [ ] – возвращает имя родительского каталога для текущего рабочего каталога;
- ParentDirectory ["dir"] – возвращает имя родительского каталога для каталога dir;
- $ Path – дает список каталогов для просмотра при попытке поиска внешнего файла;
- StreamPosition [stream] – возвращает целое число, которое указывает позицию текущей точки в открытом потоке stream;
- Streams [ ] – возвращает список всех потоков, открытых в данный момент;
- Streams ["name" ] – перечисляет только потоки с указанным именем name.
Приведенные ниже примеры иллюстрируют использование большинства из этих достаточно простых функций:
Directory[]
C:\PROGRAM FILES\WOLFRAM RESEARCH\MATHEMATICA\
4.0
DirectoryStack[]
{}
/
$Display
stdout
FileByteCount[
"C:.val"
]
46
FileDate[
"C:.val"
]
{
1999
,
8
,
3
,
16
,
4
,
44
}
FileInformation[
"C:.val"
]
{File
>
C:\ma.val, FileType
>
File, Date
>
3142685084
, ByteCount
>
46
}
Filenames[]
{Examples, FILES, MATHEMATICA.EXE,
MATH.EXE, MATHINSTALLER.EXE, MATHKERNEL.EXE}
FileType[
"C:.val"
]
File HomeDirectory[]
c:\
$0utput
{OutputStream[stdout,
1
]}
ParentDirectory[]
C:\m3 Streams[]
{OutputStream[stdout,
1
],
OutputStream[stderr,
2
]}
Высказанное выше соображение об избыточности набора операций вполне применимо и для этих функций.