63 lines
2.5 KiB
Python
63 lines
2.5 KiB
Python
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}") |