64 lines
2.0 KiB
Python
64 lines
2.0 KiB
Python
import os
|
|
|
|
class AD_DeleteLocalAny:
|
|
@classmethod
|
|
def INPUT_TYPES(s):
|
|
return {
|
|
"required": {
|
|
"Any": ("STRING", {"forceInput": True}),
|
|
"File_Name": ("STRING", {"default": ""})
|
|
},
|
|
}
|
|
|
|
INPUT_IS_LIST = True
|
|
RETURN_TYPES = ("STRING", "STRING")
|
|
RETURN_NAMES = ("Tips", "Deleted_Paths")
|
|
OUTPUT_NODE = True
|
|
FUNCTION = "delete_files"
|
|
CATEGORY = "🌻 葵花宝典/批量操作"
|
|
|
|
def delete_files(self, Any, File_Name):
|
|
if not isinstance(Any, list):
|
|
Any = [Any]
|
|
|
|
if isinstance(File_Name, list):
|
|
File_Name = File_Name[0] if File_Name else ""
|
|
elif File_Name is None:
|
|
File_Name = ""
|
|
|
|
tips = []
|
|
deleted_paths = []
|
|
|
|
for item in Any:
|
|
if os.path.isdir(item):
|
|
for root, dirs, files in os.walk(item):
|
|
for file in files:
|
|
if not File_Name or file.startswith(File_Name):
|
|
file_path = os.path.join(root, file)
|
|
try:
|
|
os.remove(file_path)
|
|
tips.append(f"Deleted file: {file_path}")
|
|
deleted_paths.append(file_path)
|
|
except Exception as e:
|
|
tips.append(f"Error deleting {file_path}: {str(e)}")
|
|
elif os.path.isfile(item):
|
|
try:
|
|
os.remove(item)
|
|
tips.append(f"Deleted file: {item}")
|
|
deleted_paths.append(item)
|
|
except Exception as e:
|
|
tips.append(f"Error deleting {item}: {str(e)}")
|
|
else:
|
|
tips.append(f"'{item}' is not a valid file or directory path")
|
|
|
|
return ('\n'.join(tips), '\n'.join(deleted_paths))
|
|
|
|
N_CLASS_MAPPINGS = {
|
|
"AD_DeleteLocalAny": AD_DeleteLocalAny,
|
|
}
|
|
|
|
N_DISPLAY_NAME_MAPPINGS = {
|
|
"AD_DeleteLocalAny": "🌻 Delete Local Any",
|
|
}
|
|
|