Login 是否使用.Net SDK从Azure Data Lake存储中删除文件?

Login 是否使用.Net SDK从Azure Data Lake存储中删除文件?,login,active-directory,azure-data-lake,Login,Active Directory,Azure Data Lake,我想使用.Net SDK删除Azure Data Lake存储中的特定文件 使用下面的代码,它返回错误“操作返回了无效的状态代码'BadRequest'” var clientCredential=新的clientCredential(CLIENTID,CLIENTSECRET) var creds=ApplicationTokenProvider.LoginSilentAsync(域名, 结果 _adlsFileSystemClient=新的DataLakeStoreRefileSystemM

我想使用.Net SDK删除Azure Data Lake存储中的特定文件

使用下面的代码,它返回错误“操作返回了无效的状态代码'BadRequest'

var clientCredential=新的clientCredential(CLIENTID,CLIENTSECRET)

var creds=ApplicationTokenProvider.LoginSilentAsync(域名, 结果

_adlsFileSystemClient=新的DataLakeStoreRefileSystemManagementClient(creds)

var filedeletesult=_adlsFileSystemClient.FileSystem.Delete(_adlsAccountName,path)


我曾经遇到过这个错误,我最终用异步方法而不是同步方法解决了这个问题

您可能还想检查传递给“Delete”函数的文件路径;它必须是整个路径,包括文件名+扩展名。类似于“/rootFolder/subFolder1/subFolder2/DeleteMe.txt”

试着这样做:

    private ServiceClientCredentials Authenticate(string _adlsDomain, string _adlsWebClientId, string _adlsClientSecret)
{               
    SynchronizationContext.SetSynchronizationContext(new SynchronizationContext());

    /*_adlsDomain       ==> DirectoryID or TenantID
      _adlsWebClientId  ==> Application ID
      _adlsClientSecret ==> Active Directory APplication key1
    */

    ClientCredential clientCredential = new ClientCredential(_adlsWebClientId, _adlsClientSecret);

    return ApplicationTokenProvider.LoginSilentAsync(_adlsDomain, clientCredential).Result;     

}

private async Task DeleteFile(string path)
{
    string _adlsDomain = "xxxx";
    string _adlsWebClientId = "xxxx";
    string _adlsClientSecret = "xxxx";      
    string _subscription_id = "xxxx";
    string _adlsAccountName = "xxxxxxx";
    ServiceClientCredentials _creds = Authenticate(_adlsDomain, _adlsWebClientId, _adlsClientSecret)

    // Create client objects and set the subscription ID
    DataLakeStoreAccountManagementClient _adlsClient = new DataLakeStoreAccountManagementClient(_creds) { SubscriptionId = _subscription_id };
    DataLakeStoreFileSystemManagementClient _adlsFileSystemClient = new DataLakeStoreFileSystemManagementClient(_creds);

    await _adlsFileSystemClient.FileSystem.DeleteAsync(_adlsAccountName, path);
}

仍然显示错误的请求错误。请添加从登录到删除文件的全部代码。我已经添加了全部代码。并添加了有关路径的注释。您的文件路径是什么样子的?我已经给出了确切的路径,但它显示了错误。我在登录时获得了访问令牌。抱歉@COR我已经给出了文件的完整地址。现在它开始工作了。