Matlabでファイルを安全かつプログラムで削除するにはどうすればよいですか?「安全に」とは、次のことを意味します。
- 単一の削除ステートメントは、最大で1つのファイルを削除します。たとえば、ワイルドカードは削除しません。
delete(a*)
ファイルだけを削除する必要がありa*
ます! - 単一の削除ステートメントには、起こりうる副作用はありません。たとえば、
system(sprintf('rm -f %s', foo))
どこにあるかはわかりfoo
ませんfile;some_command
。
現在、私が遭遇したコードにsystem(sprintf('rm -f %s', foo))
は、の衛生状態があるところがありfoo
ます。に置き換えたかったのですが、ドキュメントdelete(foo)
によると、Matlabs関数はワイルドカードを受け入れるため、要件(1)が満たされていません。入力にが含まれていると、多くのファイルが削除される可能性があります。Matlabでファイルを安全に削除するにはどうすればよいですか?delete
*
もちろん、1つの方法は、foo
などの文字を削除してサニタイズすること:=, ()*<>!?%;
です。しかし、第一に、これは回り道であり、第二に、それらの文字を含むファイルを削除することはできません。