Problemlesendatei mit Smblibrary mit SMB2
Posted: 21 May 2025, 15:16
Ich versuche, eine Datei von einem SMB -Server mit .NET7 API und SMBLIBRARY zu lesen, aber der Lesedaten mit Nulldaten und den Status: " status_end_of_file ". class = "Lang-CS PrettyPrint-Override">
Code: Select all
client = new SMB2Client();
bool isConnected = client.Connect("xxxxxxxxxxx", SMBTransportType.DirectTCPTransport);
if (isConnected)
{
NTStatus status = client.Login(string. Empty, "xxxxxxxxxx", "xxxxxxxx");
if (status == NTStatus.STATUS_SUCCESS)
{
//List shares = client.ListShares(out status);
var folderPath = "folder1\\folder2\\folder3";
var shareName = "share";
ISMBFileStore fileStore = client.TreeConnect(shareName: shareName, out status);
if (status == NTStatus.STATUS_SUCCESS)
{
object directoryHandle;
FileStatus fileStatus;
status = fileStore.CreateFile(out directoryHandle, out fileStatus, "", AccessMask.GENERIC_READ, 0, ShareAccess.Read | ShareAccess.Write | ShareAccess.Delete, CreateDisposition.FILE_OPEN, CreateOptions.FILE_DIRECTORY_FILE, null);
status = fileStore.CreateFile(out directoryHandle, out fileStatus, folderPath, AccessMask.GENERIC_READ, 0, ShareAccess.Read, CreateDisposition.FILE_OPEN, CreateOptions.FILE_DIRECTORY_FILE, null);
status = fileStore.CreateFile(out directoryHandle, out fileStatus, "file1.pdf", AccessMask.GENERIC_READ | AccessMask.SYNCHRONIZE, FileAttributes.Normal, ShareAccess.Read, CreateDisposition.FILE_OPEN, CreateOptions.FILE_NON_DIRECTORY_FILE | CreateOptions.FILE_SYNCHRONOUS_IO_ALERT, null);
if (status == NTStatus.STATUS_SUCCESS)
{
MemoryStream stream = new MemoryStream();
byte[] data;
long bytesRead = 0;
while (true)
{
status = fileStore.ReadFile(out data, directoryHandle, bytesRead, (int) client.MaxReadSize);
//returned status : STATUS_END_OF_FILE