在我的数据库中,我对我们的azure文件有完整的绝对Uri
。
例如
https://<snip>.file.core.windows.net/share1/Brand1/Export_2017-05-11-12-54.xml
https://<snip>.file.core.windows.net/share1/Brand1/asdfasdfasd.xml
https://<snip>.file.core.windows.net/share1/Brand2/PewPew%20-%20Sample-78206580-1dd8-4de2-9b92-002bdca861a5.xml
请注意:
Share
名称,例如share1
/
。例如brand1/blah.xml
我试图查看该文件是否存在然后用它做什么(例如下载它,无论如何)。
我首先需要File Reference
这个项目。我已经完成了设置 (SAS
等)的所有仪式。
这是我获取文件的文件引用的方式:
var cloudFile = ShareRootDirectory.GetFileReference(fileName);
如果它可以fileName = "Brand1/Export_2017-05-11-12-54.xml
起作用(注意:那里没有share
或https://....
。)
否则我收到错误。
有没有办法,如果天蓝色的文件有完整的绝对uri,我可以将某些传递给我之前设置的ShreRootDirectory
来获取/检查文件吗?或者我需要以另一种方式做到这一点吗?
有一些技巧吗?
注意:
- 我有一个共享文件夹(用于文件)
- 文件名中包含/
,这给出了文件夹的错觉。
这是我拍摄的一个屏幕截图:
var tempCloudFile = new CloudFile(new Uri(fileName));
答案 0 :(得分:3)
如果您有权访问存储凭据,则可以使用以下覆盖CloudFile
来获取该文件的引用,然后对该文件执行操作。例如,我在下面获得CloudFile的参考并检查其存在。
var cred = new StorageCredentials(accountName, accountKey);
var file = new CloudFile(new Uri("https://<snip>.file.core.windows.net/share1/Brand1/Export_2017-05-11-12-54.xml"), cred);
var exists = file.Exists();