mirror of
https://github.com/TalAloni/SMBLibrary.git
synced 2025-07-21 16:55:54 +02:00
SMB2Client: Implemented QueryDirectory method
This commit is contained in:
parent
e03037d241
commit
c3a88d59ab
1 changed files with 24 additions and 1 deletions
|
@ -126,7 +126,30 @@ namespace SMBLibrary.Client
|
||||||
|
|
||||||
public NTStatus QueryDirectory(out List<QueryDirectoryFileInformation> result, object handle, string fileName, FileInformationClass informationClass)
|
public NTStatus QueryDirectory(out List<QueryDirectoryFileInformation> result, object handle, string fileName, FileInformationClass informationClass)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
result = new List<QueryDirectoryFileInformation>();
|
||||||
|
QueryDirectoryRequest request = new QueryDirectoryRequest();
|
||||||
|
request.FileInformationClass = informationClass;
|
||||||
|
request.Reopen = true;
|
||||||
|
request.FileId = (FileID)handle;
|
||||||
|
request.OutputBufferLength = m_client.MaxTransactSize;
|
||||||
|
request.FileName = fileName;
|
||||||
|
|
||||||
|
TrySendCommand(request);
|
||||||
|
SMB2Command response = m_client.WaitForCommand(SMB2CommandName.QueryDirectory);
|
||||||
|
if (response != null)
|
||||||
|
{
|
||||||
|
while (response.Header.Status == NTStatus.STATUS_SUCCESS && response is QueryDirectoryResponse)
|
||||||
|
{
|
||||||
|
List<QueryDirectoryFileInformation> page = ((QueryDirectoryResponse)response).GetFileInformationList(informationClass);
|
||||||
|
result.AddRange(page);
|
||||||
|
request.Reopen = false;
|
||||||
|
TrySendCommand(request);
|
||||||
|
response = m_client.WaitForCommand(SMB2CommandName.QueryDirectory);
|
||||||
|
}
|
||||||
|
return response.Header.Status;
|
||||||
|
}
|
||||||
|
|
||||||
|
return NTStatus.STATUS_INVALID_SMB;
|
||||||
}
|
}
|
||||||
|
|
||||||
public NTStatus GetFileInformation(out FileInformation result, object handle, FileInformationClass informationClass)
|
public NTStatus GetFileInformation(out FileInformation result, object handle, FileInformationClass informationClass)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue