gpt4 book ai didi

c# - 使用 C# 将文件上传到 azure 文件存储会使目录中的所有其余文件长度为 0

转载 作者:太空宇宙 更新时间:2023-11-03 14:45:31 25 4
gpt4 key购买 nike

我正在使用以下方法将文件上传到 Azure 文件存储。它的作用是,有时它会清除目录中已有的文件,将其长度设置为 0。新文件以正确的长度上传,但旧文件的长度设置为 0。它执行此操作 10 次中的 8 次,没有抛出任何错误。

  public static bool UploadFile(string fileName, byte[] fileInBytes, string directory, string sunDirectory)
{

if (fileInBytes == null && fileInBytes.Length == 0)
{
Logger.Log("file is zero length");
return false;
}

CloudStorageAccount storageAccount;

try
{
storageAccount = CloudStorageAccount.Parse(documentsConnectionString);
}
catch(Exception ex)
{
Logger.Log("can't use storage account! " + ex.Message);
return false;
}

CloudFileClient fileClient = storageAccount.CreateCloudFileClient();

CloudFileShare share = fileClient.GetShareReference(fileShareReference);

if (share.Exists())
{
try
{
CloudFileDirectory rootDir = share.GetRootDirectoryReference();

CloudFileDirectory directoryRef;

directoryRef = rootDir.GetDirectoryReference(directory);

directoryRef.CreateIfNotExists();

CloudFileDirectory subDirectoryRef;
subDirectoryRef = directoryRef.GetDirectoryReference(subDirectory);


subDirectoryRef.CreateIfNotExists();

CloudFile file = subDirectoryRef.GetFileReference(fileName);

file.UploadFromByteArray(fileInBytes, 0, fileInBytes.Count());

return true;
}
catch(Exception ex)
{
Logger.Log("Uploading file to azure exception: " + ex.Message);
return false;
}
}
else
{
Logger.Log("Document share does not exist!");
return false;
}
}

最佳答案

我发现了问题。

这段代码

 if (fileInBytes == null && fileInBytes.Length == 0)
{

必须

 if (fileInBytes == null || fileInBytes.Length == 0)
{

否则允许保存长度为零的文件。

感谢大家花时间看问题

关于c# - 使用 C# 将文件上传到 azure 文件存储会使目录中的所有其余文件长度为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54422168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com