0

私のクライアント側では、ディレクトリに cd して pwd すると、正しい 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 した文字をパス名に追加したいだけです。

「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」を何に設定するかわかりません。

4

1 に答える 1

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

    }
于 2016-02-26T22:29:18.403 に答える