from datetime import datetime def formatSize(size): """格式化文件大小""" for unit in ["B", "KB", "MB", "GB", "TB"]: if size < 1024: return f"{size:.2f} {unit}" size /= 1024 return f"{size:.2f} PB" def formatDate(date_str): """格式化日期时间""" try: # 处理带小数秒的情况 if "." in date_str: # 分割日期和小数秒部分 date_part, fractional_part = date_str.split(".", 1) # 去除末尾的'Z'并截取前6位小数 fractional_sec = fractional_part.rstrip("Z")[:6] # 重新组合日期字符串 normalized_date_str = f"{date_part}.{fractional_sec}Z" date_time = datetime.strptime(normalized_date_str, "%Y-%m-%dT%H:%M:%S.%fZ") else: # 处理没有小数秒的情况 date_time = datetime.strptime(date_str, "%Y-%m-%dT%H:%M:%SZ") except ValueError: # 如果所有格式都失败,返回原始字符串 return date_str return date_time.strftime("%Y-%m-%d %H:%M:%S") def getFileIcon(fileType, fileName): if fileType == "file": suffix = fileName.split(".")[-1].lower() icon_map = { "txt": "Txt.svg", "png": "Image.svg", "jpg": "Image.svg", "svg": "Image.svg", "jpeg": "Image.svg", "bmp": "Image.svg", "gif": "Gif.svg", "xls": "Excel.svg", "xlsx": "Excel.svg", "doc": "Word.svg", "docx": "Word.svg", "pdf": "Pdf.svg", "ppt": "PPT.svg", "mp4": "Video.svg", "mkv": "Video.svg", "mp3": "music.svg", "wav": "music.svg", "zip": "Zip.svg", "rar": "Zip.svg", "csv": "Excel.svg", "db": "Database.svg", "py": "Programme.svg", "c": "Programme.svg", "cpp": "Programme.svg", "go": "Programme.svg", } return icon_map.get(suffix, "None.svg") # 默认图标 else: return "Folder.svg"