在我的客户端,如果我进入一个目录并将其转发,它会显示正确的密码。 (ftp>表示客户端)
ftp> cd adam
ftp> pwd
remote working directory: amlodoz1/p1/adam
但是,如果我然后'cd ..',并点击pwd,它给了我这个:
ftp> cd ..
ftp> pwd
remote working directory: amlodoz1/p1/adam/..
显然,pwd应该返回amlodoz1/p1/
,但它只是喜欢将我输入的任何字符附加到路径名中。
'cd'和'pwd'的实现在这里。
public void cd(String dirName) throws IOException{
System.out.println("Changing directory to '" + dirName + "'");
File dir = new File(dirName);
System.setProperty("user.dir", dir.getAbsolutePath());
}
public void pwd() throws IOException{
String pwd = System.getProperty("user.dir");
System.out.println("Remote working directory: " + pwd);
}
我正在考虑为'cd ..'编写if子句但我不知道在setProperty函数中将“user.dir”设置为什么。
答案 0 :(得分:0)
嗯,我刚刚意识到有一个.getParent()
方法,所以写出来了。
public void cd(String dirName) throws IOException{
System.out.println("Changing directory to '" + dirName + "'");
if(dirName.equals("..")){
File dir = new File(System.getProperty("user.dir"));
System.setProperty("user.dir", dir.getAbsoluteFile().getParent());
}
else{
File dir = new File(dirName);
System.setProperty("user.dir", dir.getAbsolutePath());
}
}