Получить точный размер файла через smbjJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Получить точный размер файла через smbj

Сообщение Anonymous »

Я пытаюсь прочитать файлы из общего ресурса SMB с помощью библиотеки smbj.
Мой код должен считывать массив байтов, и перед чтением мне нужно знать размер файла. К сожалению, изучая код, я могу найти только методы для получения выделенного размера, который обычно больше реального размера файла.
Так как же мне получить фактический размер файла в байтах? ?
Мой (неправильный код) пока выглядит так:
SMBClient client = new SMBClient();
try(Connection connection = client.connect(hostname)) {
AuthenticationContext ac = new AuthenticationContext(user, password.toCharArray(), domain);
Session session = connection.authenticate(ac);

// Connect to Share
try (DiskShare share = (DiskShare) session.connectShare(shareName)) {
FileAllInformation fileInfo = share.getFileInformation(path);
File file = share.openFile(path, EnumSet.of(AccessMask.GENERIC_READ), null, SMB2ShareAccess.ALL, SMB2CreateDisposition.FILE_OPEN, null);

long fileSize = fileInfo.getStandardInformation().getAllocationSize();

// this partis problematic as it throws an IOException
// if not the fileSize amount of bytes can be read
byte[] bytes = IOUtils.toByteArray(fileIn, fileInfo.getStandardInformation().getAllocationSize());
}
}


Подробнее здесь: https://stackoverflow.com/questions/790 ... e-via-smbj
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»