Azure 文件共享的 get_directory_client 和 get_subdirectory_client 之间的区别
differences between get_directory_client and get_subdirectory_client for azure file share
Azure 文件共享 Python SDK 有两个相似的方法 get_directory_client
和 get_subdirectory_client
。似乎两者都在与目录交互。但是我们需要两种方法来执行相同的任务吗?
get_directory_client
是获取根目录,get_subdirectory_client
是获取当前目录的子目录。
从文档中可以看出,必须获取ShareClient object first. At this time, you can only call get_directory_client to get the root directory, and then you will get the ShareDirectoryClient object. At this time, if you want to get the subdirectory , You can only call the get_subdirectory_client方法
也可以参考description of the file share client了解区别:
==========================更新================== ====
connection_string = "<your-connection-string>"
service = ShareServiceClient.from_connection_string(conn_str=connection_string)
share = service.get_share_client("<your-file-share-name>")
my_files = []
for item in share.list_directories_and_files():
my_files.append(item)
if item["is_directory"]:
for item2 in share.get_directory_client(item["name"]).list_directories_and_files():
my_files.append(item)
for item3 in share.get_directory_client(item["name"]).get_subdirectory_client(item2["name"]).list_directories_and_files():
my_files.append(item3)
else:
my_files.append(item)
print(my_files)
你可以参考这个official documentation。
老实说,我发现不得不处理两种不同的方法来做“同一件事”有点令人困惑。我更喜欢通过 from_connection_string
方法实例化目录客户端。
有关如何从 FileShare 列出文件的更多信息,请查看以下 post:。我报告的方法允许递归地列出文件,遍历目录。
Azure 文件共享 Python SDK 有两个相似的方法 get_directory_client
和 get_subdirectory_client
。似乎两者都在与目录交互。但是我们需要两种方法来执行相同的任务吗?
get_directory_client
是获取根目录,get_subdirectory_client
是获取当前目录的子目录。
从文档中可以看出,必须获取ShareClient object first. At this time, you can only call get_directory_client to get the root directory, and then you will get the ShareDirectoryClient object. At this time, if you want to get the subdirectory , You can only call the get_subdirectory_client方法
也可以参考description of the file share client了解区别:
==========================更新================== ====
connection_string = "<your-connection-string>"
service = ShareServiceClient.from_connection_string(conn_str=connection_string)
share = service.get_share_client("<your-file-share-name>")
my_files = []
for item in share.list_directories_and_files():
my_files.append(item)
if item["is_directory"]:
for item2 in share.get_directory_client(item["name"]).list_directories_and_files():
my_files.append(item)
for item3 in share.get_directory_client(item["name"]).get_subdirectory_client(item2["name"]).list_directories_and_files():
my_files.append(item3)
else:
my_files.append(item)
print(my_files)
你可以参考这个official documentation。
老实说,我发现不得不处理两种不同的方法来做“同一件事”有点令人困惑。我更喜欢通过 from_connection_string
方法实例化目录客户端。
有关如何从 FileShare 列出文件的更多信息,请查看以下 post: