如何打开具有特定编码类型的 ShareFileClient 写流?

How to open ShareFileClient write stream with specific encoding type?

我想使用 .NET 在 Azure FileShare 资源中的 FileShareClient 上创建新的 blob api。执行此操作时有什么方法可以指定它的编码吗? 要打开写文件,我使用这样的东西:

  public Stream FileShareOpenWrite(Response<ShareFileProperties> properties, ShareFileOpenWriteOptions openOptions)
    {
        return shareFileClient.OpenWrite(false, properties.Value.ContentLength, openOptions);
    }

是否可以在打开 ShareFileClient 的 writer 时指定编码?

对于本地文件,我有类似的功能,它创建新的 StreamWriter 并允许我直接指定 ANSI 编码:

     using (var writer = new StreamWriter(userInputModel.Path, true, Encoding.GetEncoding("ISO-8859-1")))

如果要在文件共享中设置Azure文件的编码,我们可以使用剩下的APISet File Properties,然后在请求头中设置x-ms-content-encoding

代码,如果你用的是azure文件存储sdk,可以参考这个article

例如

ShareClient share = new ShareClient(connectionString, shareName);
ShareDirectoryClient directory = share.GetDirectoryClient(dirName);
ShareFileClient file = directory.GetFileClient(fileName);

if(await file.ExistsAsync()){

  file.SetHttpHeadersAsync(<file size>, new ShareFileHttpHeaders(){ContentEncoding = {""}})
}else{
 file.CreateAsync (<file size>, new ShareFileHttpHeaders(){ContentEncoding = {""}})
}