import os, codecs
import tkinter as tk
from tkinter import filedialog, messagebox, simpledialog
LOGO_URL = "https://data-recovery-prague.com/img/LOGO_FINAL.png"
def read_folder(folder, f):
global ctr
global fctr
global sum_bytes
ctr += 1
try:
dir_contents = os.listdir(folder)
n = os.path.basename(folder)
if n == "":
n = "Root"
f.write('
')
print(f"#{ctr} ... {folder}")
for directory in sorted(dir_contents):
dir_path = os.path.join(folder, directory)
if os.path.isdir(dir_path) and not os.path.islink(dir_path):
read_folder(dir_path, f)
elif os.path.isdir(dir_path) and os.path.islink(dir_path):
f.write('
' + directory + " -> " + os.readlink(dir_path) + "
")
for fname in sorted(dir_contents):
if not os.path.isdir(os.path.join(folder, fname)):
try:
try:
css_class = fname.split(".")[-1].lower()
except:
css_class= "none"
if css_class in ("mov", "mp4", "avi", "3gp", "3g2", "m2v", "mkv", "m4v", "mpe", "mpg", "mpeg", "ogv", "rm", "vob", "webm", "wmv", "qt", "ra", "ram", "f4v", "flv"):
css_class = "mov"
elif css_class in ("mp3", "3ga", "aa", "aac", "aif", "aifc", "aiff", "amr", "asx", "au", "flac", "iff", "m3u", "m3u8", "m4a", "m4r", "mid", "midi", "mod", "mp2", "mpa", "mpga", "ogg", "wav", "wma"):
css_class = "snd"
elif css_class in ("exe", "com", "app", "apk", "jar", "pyc", "sys"):
css_class = "exe"
elif css_class in ("doc", "docb", "docm", "docx", "dot", "dotm", "dotx", "odt", "rtf"):
css_class = "doc"
elif css_class in ("xls", "xlb", "xlc", "xlm", "xlsb", "xlsm", "xlsx", "xlt", "xltm", "xltx", "ods"):
css_class = "xls"
elif css_class in ("potx", "pps", "ppsx", "ppt", "pptm", "pptx", "odp"):
css_class = "ppt"
elif css_class in ("raw", "cr2", "orf", "dng", "nef"):
css_class = "raw"
elif css_class in ("jpg", "png", "bmp", "bpg", "gif", "heic", "image", "jpe", "jpeg", "psd", "psp", "tif", "tiff", "tga", "webp", "xcf"):
css_class = "img"
elif css_class in ("pdf", "ps"):
css_class = "pdf"
elif css_class in ("zip", "rar", "tar", "7z", "ace", "bz2", "gz", "cab", "sit", "xz", "z"):
css_class = "zip"
elif css_class in ("htm", "html", "xml", "xsl", "xps", "xaml", "rdl", "dtd"):
css_class = "xml"
elif css_class in ("c", "cpp", "php", "py", "java", "lua", "js", "applescript", "asax", "ascx", "ashx", "asmx", "asp", "aspx", "bash", "sh", "bat", "cfm", "cfml", "class", "cs", "csh", "go", "h", "iml", "json", "jsp", "jsx", "lisp", "pl", "pm", "rb", "ru", "rub", "swift", "vb", "zsh", "asm"):
css_class = "code"
elif css_class in ("sql", "db", "accdb", "accdt", "adn", "dbf", "dsn", "mdb", "odb", "pdb", "sdf", "sqlite", "edb"):
css_class = "db"
elif css_class in ("deb", "rpm", "dmg", "msi", "msu", "pkg", "xrb"):
css_class = "pkg"
elif css_class in ("dwg", "cad", "dgn", "dxf", "stl", "scad", "step"):
css_class = "cad"
elif css_class in ("ai", "eps", "svg"):
css_class = "eps"
elif css_class in ("ttf", "otf", "eot", "fnt", "fon", "woff", "woff2"):
css_class = "fnt"
elif css_class in ("eml", "pst", "ost"):
css_class = "eml"
elif css_class in ("txt", "log", "ini", "yaml", "yml", "asc", "dist", "readme", "me", "pid", "rdf", "tex"):
css_class = "txt"
elif css_class in ("bin", "img", "dd", "iso"):
css_class = "bin"
else:
css_class = "other"
f.write('
' + fname + "
")
try:
fsize = os.path.getsize(os.path.join(folder, fname))
except FileNotFoundError:
fsize = 1
sum_bytes += fsize
fctr += 1
except UnicodeEncodeError:
pass
f.write('
')
except PermissionError:
f.write('