You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用ListFilesAndDirectories获取Azure文件共享文件列表报错如何解决

Azure文件共享ListFilesAndDirectories方法报错解决方案

报错原因

  • 你当前项目引用的Azure文件存储SDK版本和代码写法不匹配:ListFilesAndDirectories()是旧版WindowsAzure.Storage或者Microsoft.Azure.Storage.File包中的同步方法,如果你使用的是新版Azure.Storage.Files.Shares包,该方法已被移除,替换为新的API。
  • 即使使用旧版SDK,也可能是没有引入对应命名空间导致方法无法识别,需要补充using Microsoft.Azure.Storage.File;指令。

解决方案

情况1:继续使用旧版SDK(Microsoft.Azure.Storage.File)

  1. 先卸载项目中已安装的其他版本Azure存储相关Nuget包
  2. 安装指定版本的旧版SDK,Nuget安装命令为:
    Install-Package Microsoft.Azure.Storage.File -Version 11.2.3
  3. 在代码顶部补充引用:
using Microsoft.Azure.Storage.File;

配置完成后原有代码即可正常运行。

情况2:使用新版SDK(Azure.Storage.Files.Shares,官方推荐)

新版SDK已废弃ListFilesAndDirectories()方法,需改用GetFilesAndDirectories()方法实现相同功能,示例代码如下:

// 引入对应命名空间
using Azure.Storage.Files.Shares;
using Azure.Storage.Files.Shares.Models;

// 初始化文件共享客户端
ShareClient shareClient = new ShareClient("你的存储账户连接字符串", "目标文件共享名称");
// 获取根目录客户端
ShareDirectoryClient rootDirClient = shareClient.GetRootDirectoryClient();

// 遍历根目录下所有文件和文件夹
Console.WriteLine("Getting list of all files/directories under the root directory of the share.");
foreach (ShareFileItem item in rootDirClient.GetFilesAndDirectories())
{
    string itemType = item.IsDirectory ? "CloudFileDirectory" : "CloudFile";
    // 需要完整Uri可拼接为 $"{rootDirClient.Uri}/{item.Name}"
    Console.WriteLine("    - {0} (type: {1})", item.Name, itemType);
}

内容的提问来源于stack exchange,提问作者AYD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 19:18:01