def browse(root):
""" Lists root, files, and file names in root folder
Args:
directory (str): Directory to list files for
"""
path = os.path.join(_AEON_TOPDIR, root)
if not os.access(path, os.R_OK):
flash('Access Denied reading {path}'.format(path=path), 'warning')
root = '/'
if root == '/':
dirnames = []
for path in valid_paths():
dirnames.append(path.strip('/'))
parent = '/'
filenames = []
dirpath = '/'
return render_template('browse.html', dirpath=dirpath, dirnames=dirnames, filenames=filenames, parent=parent)
folder = os.walk(path).next()
parent = os.path.join(path, os.pardir).split(_AEON_TOPDIR).pop().strip('/')
dirpath = folder[0].split(_AEON_TOPDIR).pop().strip('/')
dirnames = [x.split(_AEON_TOPDIR).pop() for x in folder[1]]
mime = magic.Magic(mime=True)
files = []
for filename in folder[2]:
f = os.path.join(_AEON_TOPDIR, root, filename)
# If it's a symlink we want to follow it for accurate stats
# if os.path.islink(f):
# # works for absolute paths
# # TODO: fix for relative symlink
# f = os.readlink(f)
stat = os.stat(f)
mimetype = mime.from_file(f)
# icon = get_icon(mimetype)
size = stat.st_size
mtime = stat.st_mtime
ctime = stat.st_ctime
name = filename
files.append({'name': name, 'size': size, 'mtime': mtime, 'ctime': ctime, 'mimetype': mimetype, 'link': f})
return render_template('browse.html', dirpath=dirpath, dirnames=dirnames, files=files, parent=parent)
# TODO: constraint to POST or DELETE
评论列表
文章目录