2017-01-19 20 views
0

У меня есть виртуальная машина Windows, которая настроена с помощью инструментария mksnt. Так что это будет означать, что мой путь станет C:/abc/xyzПуть к каталогу, который не признан АОH на Windows с помощью инструментария mksnt

Я пытаюсь удаленно подключиться с помощью Linux-приложения, используя Jsch utilty для этой оконной машины. Я могу успешно подключиться, и когда я пытаюсь проверить конкретный путь к каталогу, говорит, что он не существует. Однако путь существует в окне окна.

Ниже мой JSch код, который ищет в каталоге назначения -

SftpATTRS dirAttributes=null; 
try{ 
    testLog.info("Looking for directory :"+destinationDir); 
    dirAttributes = sftpc.stat(destinationDir); 
} catch(SftpException s){ 
    testLog.info("Directory does not exists !!!\n"+s.fillInStackTrace().toString());; 
} catch (Exception e){ 
    testLog.info("Directory does not exists !!!\n"+e.fillInStackTrace().toString());; 
} 

Приведенный выше код работает плавно, если я Linux < -> Linux удаленные вызовы и проверять каталог, но с Linux < -> Окна I я столкнулся с этой проблемой.

Поскольку mksnt установлен, если я иду в каталог и сделать «PWD» - он печатает «C:/ABC/XYZ»

Я не ясно, если JSch не в состоянии обрабатывать или распознавать пути из-за установленной mksnt. Не могли бы вы поделиться каким-либо решением или предоставить какой-либо указатель, который может помочь мне решить эту проблему.

PS: Я не могу установить cygwin или любой другой инструмент. Это env. и мне нужно сделать удаленные вызовы от хоста Linux через утилиту Jsch.

ответ

1
C:/abc/xyz 

Протокол SFTP использует схему Unix-подобные имена для файлов имен путей, независимо от операционной системы SFTP сервера. В схеме именования SFTP абсолютные пути начинаются с «/». Имя, начинающееся с «C», будет ссылаться на файл в рабочем каталоге сеанса SFTP.

Другими словами, SFTP-сервер на базе Windows может не интерпретировать этот путь так, как вы ожидаете. Вы должны использовать интерактивный SFTP-клиент для входа в SFTP-сервер Windows, поиска файлов и/или каталогов, которые вас интересуют, и определения правильного пути использования для доступа к ним через SFTP.

Если на SFTP-сервере Windows запущен SFTP-сервер Cygwin OpenSSH, я считаю, что правильный путь будет выглядеть как «/ cygdrive/c/abc/xyz».