_FO_FileSearch - функция поиска файлов
_FO_FolderSearch - функция поиска папок
_FO_CorrectMask - функция корректирующая маску
_FO_SearchEmptyFolders - функция поиска пустых папок
_FO_FileDirReName - функция переименования файла
_FO_GetCopyName - функция вычисления нового имени копии файла, несуществующего
_FO_FileBackup - функция создаёт резервную копию файла
_FO_PathSplit - функция делит путь на 3 части в массив
_FO_IsDir - функция проверяет, является ли объект каталогом или файлом.
_FO_IsEmptyFolder - проверяет, является ли папка пуста
_FO_ShortFileSize - Преобразует байты в число, до 3 значащих цифр с приставкой
Проверяет валидность пути, маски. Содержит основные опции: маска, исключения (инвертирование маски), вложенность. Второстепенные параметры функции: формат возвращаемых данных (массив или список), полные, относительные пути или только имена файлов. Любая ошибка сопровождается кодом ошибки и возвратом пустой строки, и наоборот отсутствие ошибки возвращает валидные данные. В комплекте пример и Gui для теста. Отличие Ru от En только в русских комментариях к функции. Максимальная вложенность $Depth = 125 проверена экспериментальным путём, скриптом создал вложенные папки в качестве имени использовал один символ, их оказалось около 123 для запаса использую 125 (путь не превышает 256 символов, отсюда ограничение). В комплекте "Corrects Mask (viewing).au3" для просмотра работы функции корреции маски. Коррекция предназначена для исправления ошибок ввода от пользователя, тем самым упрощая регулярное выражение, скорость работы которого зависит от содержания.
Правильность маски и поведение поиска.
1. Удаляются повтор элементов маски. Например *.avi|*.mpg|*.avi оставит *.avi|*.mpg (влияет только на скорость регулярного выражения)
2. Маска такого вида *|*.avi обработает как * - все файлы, по наибольшему захвату
3. Пустая строка маски тоже что и * - поиск всех файлов
4. Повотры пробелов и точек в конце каждого элемента маски удаляются, то есть *.avi .|*.mpg |*.vob. то же что *.avi|*.mpg|*.vob
5. Символы * - любое множество или отсутствие символов, ? - любой одиночный символ. При чём поиск не аналогичен поиску в эксплорере, где изначально маcка задана так: *mask*, то есть любое имя содержащее mask
2013.08.02
Добавлено _FO_IsEmptyFolder
Удалена проблема с AU3Check
2013.06.15
В функцию поиска файлов добавлены два параметра для исключения каталога из поиска
Улучшен параметр чуствительности к регистру, не требует указывать диапазон
2013.04.28
Поиск пустых папок теперь выдаёт ошибку при указании файла вместо папки
2013.04.27
Исправлено, если путь пустая строка, это не вызывало ошибки
2012.11.20
Добавлена функция _FO_IsDir, поправка в _FO_FileDirReName
2012.08.08
Улучшен параметр учёта регистра
Текст локализации _FO_GetCopyName вынесен в опциональный передаваемый параметр
2012.06.09
Добавлена функция __FO_UserLocale, чтобы не учитывать регистр букв для локального языка.
2012.05.14
Добавлены две функции _FO_FileDirReName и _FO_GetCopyName
2012.02.16
Для избавления от возможных конфликтов аналогичных одноимённых функций других скриптёров AutoIt3, к функции добавлен префикс _FO
UDF названа FileOperations.au3
Добавлена функция _FO_SearchEmptyFolders - поиск пустых папок
2012.02.15
Убрал лишнюю объявленную переменную $i найденную с помощью Au3Check (не критично)
Для избавления проблем обфускации функция __MaskUnique добавлена в исключение директивами #Obfuscator_Off и #Obfuscator_On
Добавлены префиксы типов переменных
2012.02.14
Убрал лишнюю объявленную переменную $i найденную с помощью Au3Check (не критично)
Для избавления проблем обфускации функция __MaskUnique добавлена в исключение директивами #Obfuscator_Off и #Obfuscator_On
2012.01.10
Коррекция маски выведена в отдельную функцию _FO_CorrectMask
Добавлена проверка уникальности элементов маски
2011.11.27
Всвязи с тем что некоторые программы (в отличии от эксплорера) позволяют переименование файла с добавлением пробела или точки в начало имени, то функция не корректирует маску по этому критерию, то есть корректирует только в отношении окончания файла.
Исправлены некритические ошибки
2011.11.9
Символ разделителя ";" заменён на "|", по причине, что ";" может присутствовать в именах файлов, а значит в маске, что не должно препятствовать поиску. В случае конфликта с разделителем в скрипте можно использовать Opt("GUIDataSeparatorChar", Chr(1)) или использовать свой разделитель, а при передаче опций в функцию сделать замену разделителя в маске, например _FO_FileSearch($Path, StringReplace($Mask, ';', '|'))
Изменён порядок проверки валидности маски для наилучшего детектирования и/или исправления ошибок маски
Ресурсы, на которых можно найти последние версии функции
при такой конструкции $1 = _FO_SearchEmptyFolders(@DesktopDir&'\файл.mp3',1,0) MsgBox(0,'',@error) MsgBox(0,'',$1) должна вывалится ошибка, но этого не происходит. функция упорно ищет в файле пустые папки