import os import shutil def get_non_c_drive() -> str: """ پیدا کردن اولین درایو دسترس غیر از C در سیستم مقصد """ possible_drives = [f"{letter}:\\" for letter in "DEFGH"] for drive in possible_drives: if os.path.exists(drive): return drive return r"C:\\" def setup_directories_and_copy(source_dir: str = r"C:\SoftwareNP", target_drive: str = None) -> str: """ ایجاد پوشه‌ها در درایوی غیر از C و کپی فایل‌ها از مبدا به NovinSoft """ if not target_drive: base_drive = get_non_c_drive() else: base_drive = target_drive # تغییر نام پوشه اصلی به NovinPardazOne base_target_dir = os.path.join(base_drive, "NovinPardazOne") acc_dir = os.path.join(base_target_dir, "NovinAcc") soft_dir = os.path.join(base_target_dir, "NovinSoft") print(f"[+] درایو مقصد انتخاب شده: {base_drive}") print(f"[+] در حال ایجاد ساختار پوشه‌ها در مسیر {base_target_dir} ...") # ساخت پوشه‌های NovinAcc و NovinSoft os.makedirs(acc_dir, exist_ok=True) os.makedirs(soft_dir, exist_ok=True) print(" [✓] پوشه‌های NovinAcc و NovinSoft با موفقیت ایجاد شدند.") # کپی محتویات پوشه مبدا به NovinSoft if os.path.exists(source_dir): print(f"[+] در حال کپی فایل‌ها از {source_dir} به {soft_dir} ...") for item in os.listdir(source_dir): s = os.path.join(source_dir, item) d = os.path.join(soft_dir, item) if os.path.isdir(s): shutil.copytree(s, d, dirs_exist_ok=True) else: shutil.copy2(s, d) print(f" [✓] تمام فایل‌ها با موفقیت در پوشه {soft_dir} کپی شدند.") return soft_dir else: raise FileNotFoundError(f"[-] پوشه مبدا در مسیر {source_dir} یافت نشد!") if __name__ == "__main__": os.system("chcp 65001 > nul") print("--- تست ماژول ایجاد پوشه‌ها و کپی نرم‌افزار ---") try: target_path = setup_directories_and_copy(target_drive=r"D:\\") print(f"\nعملیات با موفقیت به پایان رسید. مسیر نرم‌افزار: {target_path}") except Exception as e: print(f"\n[-] خطا: {e}")