Azure Storage的SDK并没有提供文件重命名的方法,而且从里操作修改文件名的时候也有明确提示:
是通过复制当前文件并命名为新文件名再删除旧文件,不保存快照信息,而且在重命名大文件的时候可能会花费较长时间。
官方的管理工具都没有直接重命名的方法,因此得知Storage的设计机制暂不支持文件直接重命名,但我们也可以从管理工具的提示语中得到解决方案,就是先复制文件到新文件名再删除旧文件,虽然这相当令人费解。。。但也是没有办法的办法,而且笔者查找的来的方法都是如此。。。
目前Storage没有支持,那我们也只好这样处理了,具体代码如下:
1 ///2 /// 文件重命名 3 /// 5 /// 旧文件名(需包含拓展名)e.g. old.jpg 6 /// 新文件名(需包含拓展名)e.g. new.jpg 7 ///Azure不支持直接重命名,需要将文件复制为新文件,再删除旧文件 4 ///8 public bool RenameFile(string fileOldName, string fileNewName) 9 {10 var blobOld = this.Container.GetBlockBlobReference(fileOldName);11 var blobNew = this.Container.GetBlockBlobReference(fileNewName);12 if (!blobOld.Exists())13 {14 //文件不存在15 return false;16 }17 blobNew.StartCopyFromBlob(blobOld);18 blobOld.DeleteIfExists();19 return true;20 }