0
import java.io.File;

public class FileDemo {

public static void main(String[] args) {

    String sourceDirectory = "~/Documents";

    System.out.println(sourceDirectory);

File dir = new File(sourceDirectory);

        File[] dirFiles = dir.listFiles();
        for (File file : dirFiles)
        {
                System.out.println( file.getName() );
        }
   }
}

上記のコードを使用して、Ubuntu の Documents ディレクトリにあるファイルを一覧表示しています。フォルダー名を、Java クラス ファイルが存在するローカル フォルダーに置き換えると、同じコードが機能します。ただし、dirFiles が NULL であるため、絶対パスを使用すると常に NULL ポインター例外が発生します。

私のアプローチに間違いがあるかどうか、誰かが説明できますか。

ありがとう。

4

2 に答える 2

2

Tilda~は絶対パスではありません。現在のユーザーのホーム ディレクトリに置き換えるのは、典型的な UNIX シェルの機能です。Java プログラムSystem.getProperty ("user.home")では、チルダの代わりに使用する必要があります。

于 2013-06-04T16:30:56.190 に答える