Метод определения общего размера общего файла Samba, за исключением длины JCIFS () - PullRequest
1 голос
/ 20 марта 2020

Мне нужно найти набор деталей о файле общего доступа samba, используя код Java с JCIFS. Хотя getDiskFreeSpace () печатает значение, «length ()», то есть общий размер, каждый раз выводится как 0. Мне нужен метод, который мог бы помочь мне определить этот общий размер.

Кто-нибудь знает подобный API, который я мог бы попробовать, или что я должен сделать, чтобы напечатать значение, а не 0? Фрагмент из кода:

try
        {
            NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication("*****", "username", "password");
            SmbFile smb = new SmbFile("smb://*****/Global/FR/342/WM_GER",auth);
            smb.connect();
            System.out.println("free space : "+smb.getDiskFreeSpace());
            System.out.println("total space : "+smb.length()); // prints 0
            Long percent = (smb.length() - smb.getDiskFreeSpace())/smb.length(); // gives exception because length is 0
            System.out.println("percent : "+percent);

            BigDecimal filesystemUsedSpace = BigDecimal.valueOf(smb.getDiskFreeSpace());
            System.out.println("filesystemUsedSpace "+filesystemUsedSpace);
            System.out.println("smb.getDiskFreeSpace() "+smb.getDiskFreeSpace());
            System.out.println("smb.getContentLength() "+smb.getContentLength());
            System.out.println("smb.getContentLengthLong() "+smb.getContentLengthLong());
            System.out.println("smb.getType() "+smb.getType());
        }
        catch (MalformedURLException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        catch (SmbException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

Вывод (когда закомментирована переменная «процент», так как она выдаст исключение, если не из-за значения длины 0 ()):

free space : 10354356224
total space : 0
filesystemUsedSpace 1011870294016
smb.getDiskFreeSpace() 1011870294016
smb.getContentLength() 0
smb.getContentLengthLong() -1
smb.getType() 1
...