2017-01-04 4 views
1

FileHelpersを使用してAzure File Storeからcsvファイルを読み込もうとしています。これはどのように作動しますか?Filehelpersを使用してAzure File Storeからストリームを読み取る方法

私は紺碧のファイルストアに接続し、teファイルへの参照を作成できます。これは、ディレクトリとファイルをループすることによって行われます。この例では、これらはサブディレクトリとファイル名と呼ばれています。

コード:

//connect to storage account 
CloudStorageAccount storageAccount = new CloudStorageAccount("link to account and credentials"); 
//connect to file client 
CloudFileClient fileClient = storageAccount.CreateCloudFileClient(); 
//create cloudfileshare to in process 
CloudFileShare inprocessShare = fileClient.GetShareReference("inprocess"); 
//get reference to root directory of inprocess share 
CloudFileDirectory inprocessRootDir = inprocessShare.GetRootDirectoryReference(); 
//get reference to the subdirectory 
CloudFileDirectory inprocessDir = inprocessRootDir.GetDirectoryReference(subdirectory); 
//get reference to the current file 
CloudFile destfile = inprocessDir.GetFileReference(filename); 

これは私が処理したいファイルへの参照を取得するために動作します。

私はStreamReaderをを使用すると、私は次のコードを使用することができますし、この作品:

\\open stream 
System.IO.Stream filepath = destfile.OpenRead() 
\\read the file 
System.IO.StreamReader file = new System.IO.StreamReader(filepath) 

しかし、私はFileHelpersを使用したい、私は次のことを試してみた:

\\create async filehelper 
FileHelperAsyncEngine fhe = new FileHelperAsyncEngine<MyType>(); 
using (fhe.BeginReadFile(filepath)) 

これはエラーになりますそれは入力として文字列を受け付けるだけです。私は "C:\ inprocess \ filename.csv"のようなローカルファイルへの参照を入れると動作します。ファイルに完全なURLを書き込むと、接続を解析できないというエラーが表示されます。またAzure File Shareをローカルのドライブレターにマップしようとしました。これはうまくいきますが、私はそれを雲のアプリケーションにしたい、そして、それがStreamReaderで動作するので、FileHelpersでもうまくいくはずだと思います。

答えて

1

あなたは

TextReader tr = new StreamReader(destfile.OpenRead()); 

using (fhe.BeginReadStream(tr)) 
{ 
    foreach(var record in fhe) 
    { 
    ... 
    } 
} 
+1

おかげのような何かをする必要があるので、それはたTextReaderを使用していますFileHelperAsyncEngine

BeginReadStreamを使用する必要があります!それがそれでした。 – welleman

+0

私もFileHelpersを使用しようとしていますが、Azure関数から、ファイルまたはアセンブリ 'FileHelpers、Version = 3.1.5.0、Culture = neutral、PublicKeyToken = 3e0c08d59cc3d657'またはその依存関係の1つを読み込めませんでした。それは依存関係がないので、ライブラリを使用するだけで問題があります... – Schenz

関連する問題