Скопируйте файл с локального диска на общий, используя проблему производительности JCIFS.

1

Я использую следующий код JCIFS для копирования файла с локального диска на общий диск

public boolean copyFiles(String srcFilePath, String destinationFileName) throws Exception {
    boolean successful = false;
    SmbFileOutputStream sfos = null;

    try {
        String user = USER_NAME + ":" + PASSWORD;
        System.out.println("User: " + user);

        NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication("mydomain",USER_NAME,PASSWORD);
        Config.setProperty("resolveOrder", "DNS");

        String destinationFilePath = NETWORK_FOLDER +"/" +destinationFileName;

        SmbFile sFile = new SmbFile(destinationFilePath, auth);
        sfos = new SmbFileOutputStream(sFile);
    // sfos.write(getBytesFromFile(new File(srcFilePath))); -- 1st approach
       // Files.copy(new File(srcFilePath).toPath(),sfos); -- 2nd approach
        FileInputStream fis = new FileInputStream(srcFilePath);

        BufferedReader brl = new BufferedReader(new InputStreamReader(fis));
        String b = null;
        while ((b = brl.readLine()) != null) {
            sfos.write(b.getBytes());
        }
        sfos.flush();

        successful = true;
        System.out.println("Successful" + successful);
    } catch (Exception e) {
        successful = false;
        e.printStackTrace();
    } finally {
        if (sfos != null) {
            sfos.close();
        }
    }
    return successful;
}

Для копирования 10-мегабайтного файла требуется более 10 минут. Если я копирую один и тот же файл напрямую, он занимает около 1 минуты. Я попробовал 3 подхода к копированию файла (см. Прокомментированную часть кода), но ни одна из них не показала существенных различий.

В любом случае, я могу улучшить производительность JCIFS?

  • 0
    Та же проблема. Деос кто-нибудь знает какие-либо настройки / обходные пути для ускорения передачи файлов?
Теги:
jcifs

1 ответ

0
Лучший ответ

В качестве обходного пути я установил общий диск и скопировал файл на этот диск.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню