def main(): parser = argparse.ArgumentParser(description='Parse MFT ' 'filesystem structures.') parser.add_argument('-c', action="store", metavar="cache_size", type=int, dest="cache_size", default=1024, help="Size of cache.") parser.add_argument('-v', action="store_true", dest="verbose", help="Print debugging information") parser.add_argument('filename', action="store", help="Input MFT file path") results = parser.parse_args() if results.verbose: logging.basicConfig(level=logging.DEBUG) with Mmap(results.filename) as buf: record_cache = Cache(results.cache_size) path_cache = Cache(results.cache_size) tree = MFTTree(buf) tree.build(record_cache=record_cache, path_cache=path_cache) def rec(node, prefix): print prefix + node.get_filename() for child in node.get_children(): rec(child, prefix + " ") rec(tree.get_root(), "")
def main(mft_filename, mountpoint): with Mmap(mft_filename) as buf: tree = MFTTree(buf) tree.build(progress_class=ProgressBarProgress) handler = MFTFuseOperations(mountpoint, tree, buf) FUSE(handler, mountpoint, foreground=True)