import os import tkinter as tk from tkinter import filedialog, messagebox from pathlib import Path def browse_folder(): folder = filedialog.askdirectory() if folder: folder_path.set(folder) def save_all_documents(): folder = folder_path.get() if not folder: messagebox.showerror("Error", "Please select a folder first.") return output_file = filedialog.asksaveasfilename( defaultextension=".txt", filetypes=[("Text files", "*.txt")] ) if not output_file: return with open(output_file, "w", encoding="utf-8") as out: for root, _, files in os.walk(folder): for file in files: file_path = Path(root) / file out.write(f"\n===== FILE: {file_path} =====\n") try: with open(file_path, "r", encoding="utf-8", errors="ignore") as f: content = f.read() out.write(content + "\n") except Exception as e: out.write(f"[Could not read file: {e}]\n") messagebox.showinfo("Done", f"All files saved to {output_file}") # GUI root = tk.Tk() root.title("Folder File Exporter") root.geometry("500x200") folder_path = tk.StringVar() tk.Label(root, text="Select a folder to scan:", font=("Arial", 12)).pack(pady=10) tk.Entry(root, textvariable=folder_path, width=50).pack(pady=5) tk.Button(root, text="Browse", command=browse_folder).pack(pady=5) tk.Button(root, text="Export to TXT", command=save_all_documents).pack(pady=20) root.mainloop()