directoryUtil.py 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import os
  2. import shutil
  3. class DirectoryUtil:
  4. @staticmethod
  5. def create_directory(path):
  6. """
  7. 创建一个新目录。如果目录已存在,则不执行任何操作。
  8. :param path: 要创建的目录路径
  9. """
  10. try:
  11. os.makedirs(path, exist_ok=True)
  12. print(f"Directory '{path}' created successfully.")
  13. except OSError as error:
  14. print(f"Creating directory '{path}' failed. Error: {error}")
  15. @staticmethod
  16. def delete_directory(path):
  17. """
  18. 删除一个目录及其所有内容。
  19. :param path: 要删除的目录路径
  20. """
  21. try:
  22. shutil.rmtree(path)
  23. print(f"Directory '{path}' deleted successfully.")
  24. except OSError as error:
  25. print(f"Deleting directory '{path}' failed. Error: {error}")
  26. @staticmethod
  27. def list_directory_contents(path):
  28. """
  29. 列出目录中的所有文件和子目录。
  30. :param path: 目录路径
  31. :return: 目录内容的列表
  32. """
  33. try:
  34. contents = os.listdir(path)
  35. print(f"Contents of directory '{path}': {contents}")
  36. return contents
  37. except OSError as error:
  38. print(f"Listing contents of directory '{path}' failed. Error: {error}")
  39. return []
  40. @staticmethod
  41. def list_directory(path):
  42. """
  43. 列出目录中的所有文件和子目录。
  44. :param path: 目录路径
  45. :return: 指定目录、子目录列表、文件列表
  46. """
  47. try:
  48. return os.walk(path)
  49. except OSError as error:
  50. print(f"Listing contents of directory '{path}' failed. Error: {error}")
  51. return path,None,None
  52. @staticmethod
  53. def check_directory_exists(path):
  54. """
  55. 检查一个目录是否存在。
  56. :param path: 目录路径
  57. :return: 如果目录存在则返回True,否则返回False
  58. """
  59. return os.path.exists(path) and os.path.isdir(path)
  60. # 使用示例
  61. if __name__ == "__main__":
  62. path = 'E:\\BaiduNetdiskDownload\\merge1' # 替换为你的目录路径
  63. # 创建目录
  64. DirectoryUtil.create_directory(path)
  65. # 检查目录是否存在
  66. if DirectoryUtil.check_directory_exists(path):
  67. print(f"Directory '{path}' exists.")
  68. # 列出目录内容
  69. DirectoryUtil.list_directory_contents(path)
  70. results=DirectoryUtil.list_directory(path)
  71. for root,dirs,files in results:
  72. print(root)
  73. print(dirs)
  74. print(files)
  75. # 删除目录
  76. # 注意:这将删除目录及其所有内容,请谨慎操作!
  77. # DirectoryTool.delete_directory(path)