Согласно моему тесту, когда мы используем метод CreateFileAsync
, он автоматически создает любые родительские каталоги, которые не существуют, поэтому нам не нужно создавать каталоги. Кроме того, он вернет поток, а затем вы можете поток, чтобы загрузить файл. Например
Мой код:
ServiceClientCredentials cred = ApplicationTokenProvider.LoginSilentAsync(tenantId, clientId, clientSecret).GetAwaiter().GetResult();
AdlsClient client = AdlsClient.CreateClient("test089.azuredatalakestore.net", cred);
string path = "/Test/testFilename.txt";
using (var stream = client.CreateFile(path, IfExists.Fail))
{
using (StreamReader sr = new StreamReader(@"E:\mytest.txt"))
{
string line;
while ( (line =sr.ReadLine()) != null) {
var textBytes = Encoding.UTF8.GetBytes(line + "\n\r");
stream.Write(textBytes, 0, textBytes.Length);
}
}
}
До того, как я выполню код
После того, как я выполню код ![enter image description here](https://i.stack.imgur.com/fVyAe.png)
Для получения более подробной информации, пожалуйста, обратитесь к
https://docs.microsoft.com/en-us/azure/data-lake-store/data-lake-store-service-to-service-authenticate-using-active-directory
https://docs.microsoft.com/en-us/azure/data-lake-store/data-lake-store-data-operations-net-sdk#create-a-file-and-directory