fix: 修复出现.zip文件名问题,正式发布v0.0.1.

This commit is contained in:
xiatianxuan committed 2026-01-09 20:36:38 +08:00
1 parent 848a339512
commit 93ca51118c
3 files changed
+23 -17

No files matched your search

+7
View File
@@ -6,6 +6,13 @@ dist/
wheels/
*.egg-info
.ruff_cache/
*.build/
*.dist/
*.onefile-build/
*.tmp/
.vscode/
*.exe
sbackup.json
# Virtual environments
.venv
+4 -2
View File
@@ -4,7 +4,7 @@ import sys
VERSION = "0.0.1"
help_string = f"""
version: {VERSION}
为你的文件保驾护航.
为你的文件夹保驾护航.
add 添加备份策略.
rm, remove 删除备份策略.
@@ -13,7 +13,9 @@ save 备份所有文件夹.
"""
def run():
command: str = sys.argv[1]
command: str = "help"
if len(sys.argv) > 1:
command = sys.argv[1]
if command == "add":
add_folder(input("备份文件夹:"), input("目标文件夹:"), input("需要忽略的文件夹或文件(用" "隔开):"))
elif command == "rm" or command == "remove":
+12 -15
View File
@@ -31,27 +31,23 @@ def zip_folder(
:param skip_patterns: 跳过压缩的文件或文件夹
:type skip_patterns: list
"""
#print(folder_path)
#print(zipfile_path)
folder_path = os.path.abspath(folder_path)
if zipfile_path is None:
zipfile_path = os.path.join(
os.path.dirname(folder_path), os.path.basename(folder_path) + ".zip"
)
if not zipfile_path.lower().endswith(".zip"):
#print(os.path.splitext(zipfile_path)[0])
if not os.path.splitext(zipfile_path)[0]:
zipfile_path = os.path.join(
os.path.dirname(folder_path), os.path.basename(folder_path) + ".zip"
)
else:
zipfile_path = os.path.splitext(zipfile_path)[0] + ".zip"
else:
zipfile_path = os.path.abspath(zipfile_path)
# 如果 zipfile_path 是一个目录(包括盘符根目录如 "G:/"),则在其中创建 ZIP
if os.path.isdir(zipfile_path):
zipfile_path = os.path.join(zipfile_path, os.path.basename(folder_path) + ".zip")
elif not zipfile_path.lower().endswith(".zip"):
zipfile_path += ".zip"
if not os.path.isdir(folder_path):
#print(f"{folder_path} 不是一个有效的文件夹或不存在.")
print(f"{folder_path} 不是一个有效的文件夹或不存在.")
return
#print(folder_path)
#print(zipfile_path)
try:
with zipfile.ZipFile(zipfile_path, "w", zipfile.ZIP_DEFLATED) as zipf:
for root, dirs, files in os.walk(folder_path):
@@ -62,9 +58,10 @@ def zip_folder(
file_path = os.path.join(root, file)
arcname = os.path.relpath(file_path, os.path.dirname(folder_path))
zipf.write(file_path, arcname)
print(f"成功备份: {zipfile_path}")
except PermissionError:
print(f"权限不足:无法写入 '{zipfile_path}'")
except OSError as e:
print(f"系统错误:{e}")
except Exception as e:
print(f"未知错误:{e}")
print(f"未知错误:{e}")