MATLAB Answers

大量のフォルダの2階​層下にあるファイルを​一気にコピーしたいで​す.

245 views (last 30 days)
Yuumi Tanaka
Yuumi Tanaka on 13 Jan 2018
Commented: Akira Agata on 20 Jan 2018
階層が2つ以上違うフォルダへのアクセスの仕方を教えてください.
大量のフォルダにある2階層下のファイルを一気に 現在の階層にコピーしたいのですが...

  1 Comment

Akira Agata
Akira Agata on 14 Jan 2018
例えばカレントフォルダを folder0 として、この下に大量のフォルダ(folder1, folder2,...,folderN) があり、さらにその下のフォルダ(例えばfolder1 の下の folder11,folder12,...など) 内のファイルをすべて folder0 にコピーしたいということでしょうか。
また、folder0 配下のファイルはすべてこれら2階層下のみ(つまり1階層下や3階層下にはファイルが存在しない)で、ファイル名の重複は無いと考えてよろしいでしょうか。

Sign in to comment.

Answers (1)

mizuki
mizuki on 15 Jan 2018
Edited: mizuki on 15 Jan 2018
1つ上の階層にコマンドからアクセスするには、例えばフォルダ移動の場合は ../ を使って
>> cd ../
のようにできます。 ../../ ですと2つ上になります。コピーの場合は copyfile コマンドを使用します。 例えば2階層上のフォルダにある .m ファイル (../../*.m) を現在のフォルダ (./) にコピーするには以下のようなコマンドを使用します。
>> copyfile ../../*.m ./

  1 Comment

Akira Agata
Akira Agata on 20 Jan 2018
階層の数に関係なく、例えばカレントフォルダ配下の全ての .m ファイルを現在のフォルダにコピーするのであれば、以下の方法で可能です。
fileList = dir('./**/*.m');
for kk = 1:numel(fileList)
copyfile(fullfile(fileList(kk).folder,fileList(kk).name),'./');
end

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!