KerberX

Full Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору ctaty3 Цитата: нужно использовать символы подстановки, а как правильно то их использовать? | Это обычные маски поиска: "*.pdf", "*.*", "*", "abc?ef" и т.п. * - любая последовательность символов, ? - любой единичный символ. Если же нужно искать файлы одновременно нескольких типов, то сначала надо найти все файлы, а дальше фильтровать самому. У меня есть специальная функция для этого. Код: function File.FindEx(sSourcePath, tFilter, bRecurse, bIncludeFolders, CallbackFunction, FileFoundCallbackFunction) local tFiles = File.Find(sSourcePath, "*", bRecurse, bIncludeFolders, CallbackFunction, FileFoundCallbackFunction); if (tFiles and tFilter[1] ~= "*") then local lower = string.lower; local match = string.match; local ipairs = ipairs; local function IsMatch(sPath, tExts) local sExt = lower(match(sPath, "^.+%.(.+)$")); for x, y in ipairs(tExts) do if (lower(y) == sExt) then return true; end end return false; end local tFilteredFiles = {}; for i = 1, #tFiles do local sPath = tFiles[i]; if (IsMatch(sPath, tFilter)) then tFilteredFiles[#tFilteredFiles+1] = sPath; end end return tFilteredFiles; end return tFiles; end -- local tFiles = File.FindEx(_SourceFolder, {"exe", "bat", "cmd", "dll"}, true, false, nil, nil); |
|