Spaces:
Sleeping
Sleeping
| import os | |
| import time | |
| import tempfile | |
| import zipfile | |
| class Utils: | |
| def get_tempdir(): | |
| try: | |
| timestamp = int(time.time()) | |
| temp_dir = tempfile.mkdtemp() | |
| return timestamp, temp_dir | |
| except Exception as e: | |
| raise RuntimeError(f"Failed to create temporary directory: {str(e)}") | |
| def create_zip(filelist, tmp_fname, passwd=None): | |
| if not filelist: | |
| return None | |
| try: | |
| zip_name = os.path.abspath(tmp_fname) | |
| with zipfile.ZipFile(zip_name, "w", compression=zipfile.ZIP_DEFLATED) as f: | |
| for file in filelist: | |
| if os.path.isfile(file): | |
| f.write(file, os.path.relpath(file, os.path.dirname(filelist[0]))) | |
| elif os.path.isdir(file): | |
| for root, dirs, files in os.walk(file): | |
| for filename in files: | |
| filepath = os.path.join(root, filename) | |
| f.write(filepath, os.path.relpath(filepath, os.path.dirname(filelist[0]))) | |
| if passwd: | |
| zip_name_encrypted = zip_name + ".zip" | |
| with zipfile.ZipFile(zip_name_encrypted, "w", compression=zipfile.ZIP_DEFLATED) as f: | |
| f.setpassword(passwd) | |
| f.write(zip_name, os.path.basename(zip_name)) | |
| os.remove(zip_name) | |
| return zip_name_encrypted | |
| else: | |
| return zip_name | |
| except Exception as e: | |
| raise RuntimeError(f"Failed to create zip file: {str(e)}") | |