【发布时间】:2018-01-23 08:31:39
【问题描述】:
如何使用 c# asp.net 解压和读取 Azure 数据湖中的 .gz 文件
我尝试了以下代码,但它导致异常。
异常:找不到路径“D:\xxxxxx\filename”的一部分。
public static void Main(string[] args)
{
// Obtain AAD token
var creds = new ClientCredential(applicationId, clientSecret);
var clientCreds = ApplicationTokenProvider.LoginSilentAsync(tenantId, creds).GetAwaiter().GetResult();
// Create ADLS client object
AdlsClient client = AdlsClient.CreateClient(adlsAccountFQDN, clientCreds);
try
{
// Enumerate directory
foreach (var entry in client.EnumerateDirectory("/Test/"))
{
try
{
string filename =entry.Name;
using (Stream fileStream = File.OpenRead(filename), zippedStream = new GZipStream(fileStream, CompressionMode.Decompress))
{
using (StreamReader reader = new StreamReader(zippedStream))
{
// work with reader
reader.ReadLine();
}
}
}
catch (Exception ex)
{
}
}
}
catch (AdlsException e)
{
PrintAdlsException(e);
}
Console.WriteLine("Done. Press ENTER to continue ...");
Console.ReadLine();
}
【问题讨论】:
-
我不希望有文件位于 d:\ 中的 azure 数据湖存储中。你能发布更多代码吗?
-
@PeterBons 我已经用更多代码更新了这个问题。
-
您可能想要使用 entry.FullName 而不是 entry.Name,这样它就有了路径的其余部分
标签: c# asp.net azure-data-lake