我正在尝试上传文件,但出现异常“指定的资源名称包含无效字符”。
我使用的路径是@“ C:\ Test \ Test.txt”。当我更改为相对寻址(即@“。\ Test.txt”)并将文件放在exe文件夹中时,它将起作用。
我需要知道的是相对寻址是从.NET客户端上载文件到Azure文件存储的唯一选择吗?有没有办法引用具有完整路径的文件并上传到文件存储?
更新:根据下面的评论和答案,我意识到了我的错误:我正在将传入文件路径提供给GetFileReference方法,该位置应该是Azure中新文件的名称,因此它包含无效的“:”。注释是正确的,我应该已经提供了代码,可能已经更容易诊断了。
public static async Task WriteFileToStorage(string filePath)
{
CloudFileShare fileShare = GetCloudFileShare();
CloudFileDirectory fileDirectory = fileShare.GetRootDirectoryReference();
CloudFile cloudFile = fileDirectory.GetFileReference(filePath);
await cloudFile.UploadFromFileAsync(filePath);
}
答案 0 :(得分:0)
.Net客户端在上传到Azure文件存储时确实支持完整路径。
最好提供正在使用的完整代码,包括本地和Azure文件存储中的文件名/路径。
这是我用来测试的代码,并且可以正常工作。(并且我正在使用WindowsAzure.Storage程序包,版本9.3.3):
public IHttpActionResult GetMultifiberResult(string partNumber)
{
var list = db.MultifiberResults.Where(s => s.PartNumber ==
partNumber).ToList();
return Ok(list);
}