2016-12-16 8 views
0

'f'という文字で始まるすべてのファイルをフォルダ内で削除したいとします。これは私が試したものです:何らかの理由選択したファイルの削除に関する問題

delete (fullfile(datapath,folder_name),sprintf('^%s.*\.nii$','f')); 

私はこれを行うとき\.が有効な制御文字ではなく、また、それは私がディレクトリ全体を削除したいと思っていることを、私はエラーを取得します。誰も私にこの問題を解決する方法を教えてもらえますか?

+0

あなたが言うことができますか ''。?あなたがそれらのうちの1つをエスケープしたように見えますが、多分あなたはリテラルにマッチするために最初のものをエスケープする必要があります。フォルダ名にも。 –

答えて

3

sprintfは、主にデータを文字列形式にフォーマットすることを目的としており、RegEx式では機能しません。しかし、deleteのワイルドカード*this exampleによると、ここで十分です:それは、第1または第2の文句だ場合

delete(fullfile(datapath,folder_name,'f*.nii')); 
+0

ありがとうございます。以前私はほぼ同じ行を試しましたが、folder_nameの後に)それはうまくいきませんでした。 –

+0

@A.Rainer投稿されたスニペットが二つの引数が一つの文字列ではなく 'delete'に渡されることを示すので、文字列を連結していないかもしれません。 'delete([fullfile(datapath、folder_name)、filesep、 'f * .nii']);'は上記と同じです。 – TroyHaskin

関連する問題