-
Notifications
You must be signed in to change notification settings - Fork 1
/
files.text
157 lines (108 loc) · 6.41 KB
/
files.text
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
Файловые функции
================
:::functions
`b=mf.fattr(S)`
: Возвращает файловые атрибуты файла/папки `S`:
`0x00000001`
: `FILE_ATTRIBUTE_READONLY`. Файл только для чтения.
: Приложения могут читать такой файл, но не могут записывать или удалять его.
`0x00000002`
: `FILE_ATTRIBUTE_HIDDEN`. Файл скрыт.
: Такой файл не включается в обычный листинг папки.
`0x00000004`
: `FILE_ATTRIBUTE_SYSTEM`. Этот файл - часть операционной системы.
`0x00000010`
: `FILE_ATTRIBUTE_DIRECTORY`. Это папка.
`0x00000020`
: `FILE_ATTRIBUTE_ARCHIVE`. Это архивный файл.
: Приложения должны использовать этот флаг для копирования, архивирования или удаления.
`0x00000080`
: `FILE_ATTRIBUTE_NORMAL`. У этого файла не установлены другие атрибуты.
: Это значение корректно только при использовании без остальных флагов.
`0x00000100`
: `FILE_ATTRIBUTE_TEMPORARY`. Это временный файл.
: Приложения должны записывать в такой файл только в крайней необходимости.
Большая часть данных файла находится в памяти и не сбрасывается на диск, так как файл будет удалён.
`0x00000200`
: `FILE_ATTRIBUTE_SPARSE_FILE`. Файл является разрежённым.
`0x00000400`
: `FILE_ATTRIBUTE_REPARSE_POINT`. Папка является точкой повторной обработки.
`0x00000800`
: `FILE_ATTRIBUTE_COMPRESSED`. Файл или папка сжаты.
: Для файла это означает, что все данные его сжаты,
для папки - что компрессия по умолчанию применяется ко всем её файлам и подпапкам.
`0x00001000`
: `FILE_ATTRIBUTE_OFFLINE`. Данные файла не доступны непосредственно.
: Означает, что реальные данные файла были физически перемещены на устройства хранения.
`0x00002000`
: `FILE_ATTRIBUTE_NOT_CONTENT_INDEXED`.
: Этот файл или папки не будут индексироваться службой индексирования.
`0x00004000`
: `FILE_ATTRIBUTE_ENCRYPTED`. Файл или папка зашифрованы.
: Для файла это означает, что все данные в файле зашифрованы.
Для папки это означает, что шифрование является умолчанием для вновь созданных файлов и подпапок.
`0x00010000`
: `FILE_ATTRIBUTE_VIRTUAL`. Этот файл - виртуальный файл.
Если файловый объект не существует, функция возвращает `-1`.
В параметре `S` допускается использование символов масок '`*`' и '`?`'.
В этом случае функция возвращает атрибуты для первого найденного файла/папки.
В отличие от `Panel.FAttr()`, функция не работает с панелями.
`B=mf.fexist(S)`
: Проверяет существование файла/папки `S` (возвращает `true` или `false`).
В параметр `S` допускается использование символов '`*`' и '`?`'.
В этом случае функция проверяет только первое вхождение файла/папки.
В отличие от `Panel.FExist()`, функция не работает с панелями.
`N=mf.fmatch(S,Mask)`
: Тестирует строку `S` на соответствие маске `Mask`.
`Mask` может быть:
- маской
- списком масок (разделённых запятой или точкой с запятой)
- маской исключения - одной или несколькими масками файлов, которой не должна соответствовать строка `S`.
Маска исключения отделяется от основной маски символом '`|`'
- регулярным выражением. Текст регулярного выражения должен быть окружён символами '`/`'
Возвращает:
`1`
: строка соответствует маске
`0`
: строка не соответствует маске
`-1`
: ошибка в регулярном выражении
Примеры
:::examples
`mf.fmatch("Readme.txt", "*.txt")`
: возвращает `1`
`mf.fmatch("Readme.txt", "Readme.*|*.txt")`
: возвращает `0`
`mf.fmatch([[c:\Readme.txt]], [[/txt$/i]])`
: возвращает `1`
`mf.fmatch([[c:\Readme.txt]], [[/txt$]])`
: возвращает `-1`
:::
`S=mf.fsplit(path,Flags)`
: Разбивает путь `path` на компоненты и возвращает их комбинацию, в зависимости от набора флагов `Flags`:
`0x00000001`
: Текущий диск в формате "`C:`".
Для сетевых папок - "`\\server\share`"
`0x00000002`
: Путь в формате "`\Program Files\Far\`"
`0x00000004`
: Имя
`0x00000008`
: Расширение в формате "`.EXT`" или пусто, если расширения нет.
`N=mf.testfolder(S)`
: Тестирует папку `S`.
Возвращает:
`2`
: папка не пустая
`1`
: папка пустая
`0`
: папка не существует
`-1`
: нет доступа
`-2`
: ошибка (некорректный параметр или внутренние проблемы с выделением памяти)
Если > `0` - существует и доступна
Если = `0` - не существует, но можно попробовать создать
Если < `0` - ничего обнадёживающего функция не сообщает
:::