如何打开具有特定编码类型的 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 = {""}})
}
我想使用 .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 = {""}})
}