Esempio n. 1
0
def traverse_for_mtime(directory, seen_already, directory_to_skip = None, relative_directory = None):
    directory = os.path.realpath(directory)

    for entry in os.listdir(directory):

        if entry.startswith('.'):
            continue

        entry_src = os.path.join(directory, entry)
        if os.path.isdir(entry_src):
            if not directory_to_skip == None and (entry == directory_to_skip or entry.endswith("{0}{1}".format(os.path.sep, directory_to_skip))):
                continue
            seen_already = traverse_for_mtime(entry_src, seen_already, directory_to_skip, relative_directory)
        else:
            f = File(entry, entry_src, os.stat(entry_src).st_mtime)
            if relative_directory == None:
                seen_already[entry] = f
            else:
                relative_path = f.relative_path(relative_directory)
                seen_already[relative_path] = f

    return seen_already