sftp - Kørselsvej ikke anerkendt af JSCH på Windows med mksnt værktøjssæt

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har en Windows VM, som er konfigureret med mksnt værktøjssæt. Så hvad det ville betyde, er min vej ville blive C:/abc/xyz


Jeg forsøger at forbinde fra en linux boks ved hjælp af Jsch utilty til denne windows maskine eksternt. Jeg er i stand til at oprette forbindelse, og når jeg forsøger at tjekke for en bestemt mappebane, står det ikke at eksistere . Banen findes dog på vinduesboksen.


Følgende er min Jsch-kode, der leder efter destinationsmappen -


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


Ovennævnte kode fungerer problemfrit, hvis jeg gør Linux < -> Linux-fjernopkald og valider biblioteket, men med Linux < -> Windows jeg støder på dette problem.


Da mksnt er installeret, hvis jeg går til biblioteket og gør 'pwd' - det udskriver 'C:/abc/xyz'


Jeg er ikke klar, om Jsch ikke kan håndtere eller genkende stierne som følge af installering.
Kan nogen dele nogen løsning eller give nogle pointer, der kan hjælpe mig med at løse dette.


PS: Jeg kan ikke installere cygwin eller andet værktøj. Dette er env. givet til mig, og jeg skal kun foretage fjernopkald fra Linux-vært via Jsch-værktøj.

Bedste reference


C:/abc/xyz


SFTP-protokollen bruger en unix-lignende navngivningssystem til filnavne, uanset SFTP-serverens operativsystem. I SFTP-navngivningssystemet begynder absolutte stinavn med '/'. Et navn, der begynder med 'C', refererer til en fil i SFTP-sessionens arbejdskatalog.


Med andre ord kan en Windows-baseret SFTP-server muligvis ikke fortolke dette stienavn som du forventer det. Du skal bruge en interaktiv SFTP-klient til at logge ind på Windows SFTP-serveren, finde de filer og/eller mapper, du er interesseret i og bestemme den korrekte sti, der skal bruges til at få adgang til dem via SFTP.


Hvis Windows SFTP-serveren kører Cygwin OpenSSH SFTP-serveren, tror jeg, at den korrekte sti ville være noget som '/cygdrive/c/abc/xyz'.