diff --git a/server/file_association.py b/server/file_association.py index 2e9ea4d..7157db7 100644 --- a/server/file_association.py +++ b/server/file_association.py @@ -65,7 +65,18 @@ def extract_all_zips( # 设置访问时间和修改时间 os.utime(member_path, (timestamp, timestamp)) - print(f"✓ 已解压:{zip_file.name}") + # 检查是否多了一层目录(zip 内部只有一个同名文件夹) + inner_dir = extract_dir / zip_file.stem + if inner_dir.is_dir() and len(list(extract_dir.iterdir())) == 1: + # 移动内部文件夹所有内容到外层 + for item in inner_dir.iterdir(): + item.rename(extract_dir / item.name) + # 删除空的内层文件夹 + inner_dir.rmdir() + print(f"✓ 已解压:{zip_file.name} (移除了多余目录层)") + else: + print(f"✓ 已解压:{zip_file.name}") + results.append(extract_dir) # 删除原压缩包 @@ -299,7 +310,7 @@ def main(): # 解压压缩文件 if args.extract: source_dir = Path(args.base_dir) if args.base_dir else Path("data") - extract_all_zips(source_dir, delete_original=args.delete_original) + extract_all_zips(source_dir,"tmp", delete_original=args.delete_original) return # 建立文件关联