private List<File> findWithFull(String startPath, String mask, int objectType) throws Exception {

        if (startPath == null || mask == null) {
            throw new Exception("Error");
        }
        File topDirectory = new File(startPath);
        if (!topDirectory.exists()) {
            throw new Exception("Error");
        }

        if (!mask.equals("")) {
            p = Pattern.compile(mask,
                    Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE);
        }
        filesNumber = 0;
        directoriesNumber = 0;
        totalLength = 0;
        ArrayList<File> res = new ArrayList<File>(100);

        searchWithFull(topDirectory, res, objectType);
        p = null;
        return res;
    }