JavaのFileクラスのgetPath関数を利用してファイルパスを取得する方法を現役エンジニアが解説【初心者向け】
初心者向けにJavaのFileクラスのgetPath関数を利用してファイルパスを取得する方法について解説しています。getPath関数を使うと、Fileオブジェクトの宣言のときに渡したパスを取得することができます。基本の書き方とgetAbsolutePath関数との違いについて見ていきましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
JavaのFileクラスのgetPath関数を利用してファイルパスを取得する方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。
Javaについてそもそもよく分からないという方は、Javaとは何なのか解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプ、Java講座の内容をもとに作成しています。
今回は、Javaに関する内容だね!
どういう内容でしょうか?
FileクラスのgetPath関数を利用してファイルパスを取得する方法について詳しく説明していくね!
お願いします!
目次
getPath関数とは
まずは。getPath関数について解説します。簡単に言うと、getPath関数は「ファイルのパスを取得するための関数」です。Fileクラスのオブジェクトの宣言のときには、
File Fileオブジェクト = new File("ファイルのパス");
と記述しますが、Fileのパスをプログラム内で取得したい場合などに役に立つのがgetPath関数です。
getPath関数を用いると、Fileオブジェクトの宣言のときに渡したファイルのパスの文字列を取得することができるので、プログラム内でファイルの処理を行なうときに非常に便利な関数となっています。
getAbsolutePath関数とは
続いては、getPath関数とよくにているgetAbsolutePath関数について説明します。
getAbsolutePath関数とgetPath関数との違いは、取得できる文字列が
- getPath関数の場合:「宣言のときに渡したパス」
- etAbsolutePath関数の場合:「Fileの絶対パス」
で、得られるパスの文字列が異なります。
もし、Fileオブジェクトの宣言のときに絶対パスを渡していれば、どちらの結果も同じになりますが、基本的には、getPath関数を使うと相対パスを得て、getAbsolutePath関数では絶対パスを得ると覚えておけば良いでしょう。
getPath関数の使い方
etPath関数の記述は、
Fileオブジェクト.getPath();
で、Fileオブジェクトの宣言のときに渡した「パスの文字列」が返ってきます。
String String型変数名 = Fileオブジェクト.getPath();
とすることで、パスを文字列として変数に格納できます。
ファイルパスを取得してみよう
それえは、ファイルパスを取得して画面に表示するプログラムを作って見ましょう。
import java.io.File; public class GetPathSample{ public static void main(String[] args) { //パスを取得するFileオブジェクトの宣言 File sample = new File("sample.txt"); //宣言時のパスを取得 String str1 = sample.getPath(); //絶対パスを取得 String str2 = sample.getAbsolutePath(); //それぞれ表示して確認 System.out.println(str1); System.out.println(str2); } }
これを実行すると。
sample.txt C:UsersDesktopsample.txt
のような形でパスが表示されると思います。
上が宣言時のパスで、下が絶対パスです。(絶対パスはそれぞれの環境ごとに違うものが表示されます。)
これで、Javaでファイルのパスを取得することができました・
まとめ
この記事では、Javaを使って、FIleクラスのパスを取得する方法について解説しました。
ファイルのパスの取得は、ファイル操作の自動化などで非常に便利な方法なので、参考にしてみてください。
監修してくれたメンター
メンターOS
AIプログラミングを使って開発を行う。プログラミング歴は約3年。Pythonは割と好きな方。JavaもAndroid開発で触れていたりする。 大学では物理学を勉強中。好きな物理理論は一般相対性理論らしい。 意外と動物が好きだったり、、、。 |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でも、JavaやServletの技術を使ってWebアプリケーション開発を習得できる、オンラインブートキャンプを開催しています。
また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。