次のファイル名にパスを指定できます。
/ somepath / file
ファイルには拡張子がないため、JavaではgetPathがパス全体とファイル名を返すことになります。パス/ファイル名の最後のものが常にファイル名であると仮定すると、パスを抽出するにはどうすればよいですか?最も簡単な解決策は、最後のスラッシュを探すことです。しかし、それを取得する組み込みのAPIはありますか?
編集:間違い。パス(ファイル名ではなく)を抽出する方法を意味しました。ごめん。
File file = new File("/somepath/file");
file.getName();
編集:パスが必要な場合はこれを試してください
file.getCanonicalPath();
また、ファイルオブジェクトのプロパティを使用して、さまざまな種類のファイル関連データを抽出することもできます。
Java SE 7の場合:
Path path = Paths.get("/somepath/file");
String fileName = path.getFileName().toString();
Path parentPath = path.getParent();
編集:
注:実行内容によっては、ルートディレクトリ(ここでは「/」)とセパレーター(ここでは「/」)をハードコーディングしないことを検討し、コードがプラットフォームに依存しないことを確認してください。
使用lastIndexOf()
してsubstring()
System.out.println(fileObj.getPath().substring(0, f.getPath().lastIndexOf("/"));
編集:の存在を見つけたところgetParent()
、ファイルのそのディレクトリが直接表示されます。
System.out.println(fileObj.getParent());
getName()
クラスのメソッドを試してくださいFile
。
getParent()を使用する
File file = new File("/somepath/file");
file.getParent();
これにより、「/somepath」が返されます。