def can_encrypt (): with tempfile.NamedTemporaryFile (delete=False) as f: name = f.name try: fs.file (name).encrypt () except fs.x_fs: return False else: return True
import os, sys import threading import Queue from winsys import fs def sizer(requests, results): while True: root = requests.get() if root is None: break results.put((root, sum(f.size for f in fs.flat(root)))) if __name__ == '__main__': if len(sys.argv) > 1: root = fs.file(sys.argv[1]) else: root = fs.file("c:/temp") N_THREADS = 5 requests = Queue.Queue() results = Queue.Queue() sizers = [threading.Thread(target=sizer, args=(requests, results)) for _ in range(N_THREADS)] for s in sizers: s.setDaemon(True) s.start() dirs = set(d.filepath for d in root.dirs()) for dir in dirs: requests.put(dir)
import Queue from winsys import fs def sizer(requests, results): while True: root = requests.get() if root is None: break results.put((root, sum(f.size for f in fs.flat(root)))) if __name__ == '__main__': if len(sys.argv) > 1: root = fs.file(sys.argv[1]) else: root = fs.file("c:/temp") N_THREADS = 5 requests = Queue.Queue() results = Queue.Queue() sizers = [ threading.Thread(target=sizer, args=(requests, results)) for _ in range(N_THREADS) ] for s in sizers: s.setDaemon(True) s.start() dirs = set(d.filepath for d in root.dirs())
import os, sys import csv from winsys import fs python_dirpath = fs.file(sys.executable).path with open("files.csv", "wb") as f: writer = csv.writer(f) writer.writerow(["Path", "Name", "Size", "Modified"]) for f in python_dirpath.flat(): writer.writerow([f.path, f.name, f.size, f.written_at])
import uuid from winsys import accounts, security, fs username = filename = str(uuid.uuid1())[:8] user = accounts.User.create(username, "password") f = fs.file(filename) assert(not f) assert accounts.me() != user try: with user: assert accounts.me() == user f.touch() assert f.security().owner == user f.delete() finally: user.delete()
import os, sys from winsys import security, fs def find_uninherited_ace(file, ace_to_find, container_or_object): for ace in file.security("D").dacl: if ace == ace_to_find and getattr( ace, "%ss_inherit" % container_or_object, 0): if not ace.inherited: return file, ace else: return find_uninherited_ace(file.parent(), ace_to_find, "container") python = fs.file(sys.executable) for ace in python.security("D").dacl: if not ace.inherited: print python, ace else: f, ace_found = find_uninherited_ace( python.parent(), ace, "container" if isinstance(python, fs.Dir) else "object") print f, ace_found
import os, sys from winsys import security, fs def find_uninherited_ace(file, ace_to_find, container_or_object): for ace in file.security("D").dacl: if ace == ace_to_find and getattr(ace, "%ss_inherit" % container_or_object, 0): if not ace.inherited: return file, ace else: return find_uninherited_ace(file.parent(), ace_to_find, "container") python = fs.file(sys.executable) for ace in python.security("D").dacl: if not ace.inherited: print python, ace else: f, ace_found = find_uninherited_ace(python.parent(), ace, "container" if isinstance(python, fs.Dir) else "object") print f, ace_found
import os from winsys import dialogs, fs DEFAULT = "temp.csv" filename, = dialogs.dialog ( "Open a filename", ("Filename", DEFAULT, dialogs.get_filename) ) if not fs.file (filename): raise RuntimeError ("%s does not exist" % filename) else: os.startfile (filename)
from __future__ import with_statement from winsys import security, fs f = fs.file("c:/temp/tim.txt") with security.change_privileges([security.PRIVILEGE.TAKE_OWNERSHIP]): f.take_ownership() assert f.security("O").owner == security.me()
import os from winsys import dialogs, fs DEFAULT = "temp.csv" filename, = dialogs.dialog( "Open a filename", ("Filename", DEFAULT, dialogs.get_filename) ) if not fs.file(filename): raise RuntimeError("%s does not exist" % filename) else: os.startfile(filename)