读取文件时出现Azure Blobstorage错误

时间:2019-09-03 16:39:08

标签: azure azure-blob-storage

我有一个文件,其中包含我上传到Azure blobstorage的文件,看起来像这样:

TAR-2312;12;;123;1A1195061;231
SSS 2637218;2/9;              
1A1321268;1231195061

我的触发器处理文件,但是我得到The filename, directory name, or volume label syntax is incorrect: "path.../TAR-2312;12;;123;1A1195061;231 SSS 2637218;2/9;1A1321268;1231195061

发生在突出显示的通话中

public static XDocument Convert(Stream blob)
{

   StreamReader reader = new StreamReader(blob);
   var contentOfFile = reader.ReadToEnd();

   ***List<string> lines = File.ReadLines(contentOfFile).Take(2).ToList();***

有什么想法,为什么要解决?

2 个答案:

答案 0 :(得分:1)

出现此错误的原因是因为File.ReadLines方法需要文件路径,并且您正在传递文件内容。

在您的情况下,最好使用String.Split方法使用换行符定界符(\n\r\n)分割文件的内容。

答案 1 :(得分:1)

  

列表行= File.ReadLines(contentOfFile).Take(2).ToList();

File.ReadLines(字符串路径)需要路径而不是内容。此处有更多详细信息:ReadLines

无论您要实现什么目标,都可以按照以下步骤完成:

//Get the reference of container and pass the blob name
CloudBlob blob = container.GetBlobReference("BlobFileName.txt");
List<string> lines = new List<string>();
int countTake = 2;
using (var stream = blob.OpenRead())
{
    using (StreamReader reader = new StreamReader(stream))
    {
        int count=0;
        while (!reader.EndOfStream && count!=countTake)
        {
            count++;
            lines.Add(reader.ReadLine());
        }
    }
}