Ftp Client-Server,我的'cd ..'命令搞砸了我的'pwd'命令

时间:2016-02-26 20:58:03

标签: ftp server client cd pwd

在我的客户端,如果我进入一个目录并将其转发,它会显示正确的密码。 (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”设置为什么。

1 个答案:

答案 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());
            }

    }