質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

Q&A

解決済

1回答

2247閲覧

幅探索において下の階層に行く時の指定方法がわかりません

Jhon_McClane

総合スコア48

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

0グッド

1クリップ

投稿2019/10/27 08:47

編集2019/10/28 04:18

import

1import java.util.ArrayDeque; 2import java.util.Queue; 3 4public class FileTest{ 5 public static void main(String[] args){ 6 File dir = new File("src"); 7 File[] dirFilelist = dir.listFiles(); 8 Queue<File> queue = new ArrayDeque<File>(); 9 if(dirFilelist != null){ 10 for(int i=0;i < dirFilelist.length; i++){ 11 if(dirFilelist[i].isDirectory()){ 12 queue.add(dirFilelist[i]); 13 System.out.println(queue); 14 }else if(dirFilelist[i].isFile()){ 15 queue.add(dirFilelist[i]); 16 System.out.println(queue); 17 } 18 } 19 }else{ 20 System.out.println("中身はカラです"); 21 } 22 System.out.println("------------------------------------------------------------"); 23 24/* 25上のコードはどのような状態かを可視化しただけ. 26 27 28*/ 29 30 } 31} 32 33 34コード 35```以下の条件を満たすように、ファイルの一覧データを生成し、ファイルに書き出すプログラムを 定義しなさい。 36 1) キーボードから「一覧を生成するディレクトリ名」と「出力ファイル名」を入力する。 37 2) 一覧は指定したディレクトリ名をルートとする木構造を幅優先の順序で探索し、各ディレクトリの構成要素を表示する。 38注:File dir = new File("src")の引数”src”はこのプログラムを実行するディレクトリから見えるディレクトリのパス を指定する必要があります。この名前が適切でないと NullPointerExceptiom というエラーになりま す。File dir = new File("src"); において new できなかったため、dir が nullということです。 39 40本題 41src内部にあるディレクトリをキューの中に入れ、 42再び引数に"src/下の階層にあるディレクトリ"を指定してそのディレクトリの中にあるものを取り出し幅探索を繰り返していきたいのですが、上記の注意のように実行するディレクトリから見えるパスを指定する必要がある。ソースの中から次のディレクトリに行くためにはどうすればよいでしょうか。 43 44最終的に実現にしたいことは"src"の中にあるディレクトリやファイルをすべて取り出し一覧にして表示させることです.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2019/10/27 09:12

何がわからないのかよくわかりませんが、もしかしたらファイルとディレクトリの区別がついていないのかと思いました。
Jhon_McClane

2019/10/27 09:16

カレントディレクトリを移動させたいです
Zuishin

2019/10/27 09:33

「Java カレントディレクトリ 移動」を検索してみてください。
xebme

2019/10/27 09:50

この質問はjava.nio.file.FileVisiotorの使い方を問うていますか。
jimbe

2019/10/27 13:59

おそらく File.listFiles 辺りのことかと思います.
swordone

2019/10/27 16:08 編集

まずこの「注」が怪しいんだが… そのコンストラクタで「newできない」という状況は、引数がnullの時以外にない。 まさかとは思うけど、このFileって自作クラス?
jimbe

2019/10/27 17:22

例外出しておいて変数が null ということですし, 書いた人が(相手はどうせ知らないからと)テキトウに説明しているんじゃないでしょうか. 何にしても, キュー等も出てきますし, まずは jhon_mcclane さんがご自身で書いてみたコードを(import も含めて)ご提示願いたいです.
Jhon_McClane

2019/10/28 03:48

java.nio.file.FileVisiotorの使い方ではありません 学校の課題で注がかれています
Jhon_McClane

2019/10/28 04:20

自分でも何が分からないのか分からないまま質問してしまったため 分からないところが出てきたら修正します
Zuishin

2019/10/28 04:26

学校の課題で解けないどころか何がわからないのかわからない状態なら先生に相談しなきゃいけませんね。
guest

回答1

0

ベストアンサー

「入力」や「空です」表示はありませんが, ご参考に.

java

1import java.io.File; 2import java.io.IOException; 3import java.util.ArrayDeque; 4import java.util.Queue; 5 6public class FileTest { 7 public static void main(String[] args) throws IOException { 8 Queue<File> queue = new ArrayDeque<File>(); 9 queue.add(new File("C:\workspace\teratail\src")); 10 11 for(File dir; (dir=queue.poll()) != null;) { 12 for(File file : dir.listFiles()) { 13 System.out.println(file.getPath()+(file.isDirectory()?"\":"")); 14 if(file.isDirectory()) { 15 queue.add(file); 16 } 17 } 18 } 19 } 20}

plain

1C:\workspace\teratail\src\teratail\ 2C:\workspace\teratail\src\teratail\q214024\ 3C:\workspace\teratail\src\teratail\q215540\ 4C:\workspace\teratail\src\teratail\q217204\ 5C:\workspace\teratail\src\teratail\q217942\ 6C:\workspace\teratail\src\teratail\q218190\ 7C:\workspace\teratail\src\teratail\q218784\ 8C:\workspace\teratail\src\teratail\q219521\ 9C:\workspace\teratail\src\teratail\q219626\ 10C:\workspace\teratail\src\teratail\q214024\Q214024_2.java 11C:\workspace\teratail\src\teratail\q215540\Main.java 12C:\workspace\teratail\src\teratail\q217204\Main.java 13C:\workspace\teratail\src\teratail\q217942\Main.java 14C:\workspace\teratail\src\teratail\q218190\Animal.java 15C:\workspace\teratail\src\teratail\q218784\Homework06_02.java 16C:\workspace\teratail\src\teratail\q219521\MyJFrame1.java 17C:\workspace\teratail\src\teratail\q219626\FileTest.java

投稿2019/10/28 10:49

jimbe

総合スコア12632

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問