This repository has been archived on 2025-05-04. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
JDE/Programs/FileBrowser.py
jordonbc 2538cc2290 1.5.0
Added  File Browser
2016-07-09 10:09:42 +01:00

64 lines
No EOL
2 KiB
Python

from tkinter import *
import os
path = "E:/programming/"
class fileBrowser:
def update(self):
self.path = os.path.realpath(self.path)
self.folderListbox.delete(0, END)
self.fileListbox.delete(0, END)
self.addressBox.delete(0, END)
self.addressBox.insert(0, self.path)
self.folderListbox.insert(0, "Back")
for item in os.listdir(self.path):
if not self.path.startswith("."):
if os.path.isdir(os.path.join(self.path, item)):
self.folderListbox.insert(END, item)
else:
self.fileListbox.insert(END, item)
def createWidgets(self):
self.folderListbox = Listbox(self.root)
self.fileListbox = Listbox(self.root)
self.addressBox = Entry(self.root)
self.addressBox.insert(0, self.path)
self.folderListbox.insert(0, "Back")
def test(event):
if self.folderListbox.get(self.folderListbox.curselection()) == "Back":
self.path = os.path.abspath(os.path.join(self.path, os.pardir))
else:
self.path = os.path.join(self.path, self.folderListbox.get(self.folderListbox.curselection()))
self.update()
def refresh(event):
self.path = os.path.abspath(self.addressBox.get())
self.update()
def upd(event):
self.update()
self.update()
self.addressBox.bind("<Return>", refresh)
self.folderListbox.bind("<F5>", upd)
self.folderListbox.bind('<Double-1>', test)
self.addressBox.pack(side=TOP, expand=NO, fill=X)
self.folderListbox.pack(side=LEFT, expand=YES, fill=BOTH)
self.fileListbox.pack(side=LEFT, expand=YES, fill=BOTH)
def __init__(self, master, path):
self.path = os.path.abspath(os.path.dirname(os.path.realpath(path)))
self.root = Toplevel(master)
self.root.title("File Browser")
self.createWidgets()
self.root.mainloop()