22

たとえば、ファイルを作成したいのですfoo/bar/baz/bleh.htmlが、ディレクトリfoofoo/bar/などは存在しません。

途中ですべてのディレクトリを再帰的に作成するファイルを作成するにはどうすればよいですか?

4

3 に答える 3

27

または:

new File('path/to/file').create(recursive: true);

または:

new File('path/to/file').create(recursive: true)
.then((File file) {
  // Stuff to do after file has been created...
});

再帰的とは、ファイルまたはパスが存在しない場合に作成されることを意味します。参照: https://api.dartlang.org/apidocs/channels/stable/dartdoc-viewer/dart-io.File#id_create

編集: この方法では、新しいディレクトリを呼び出す必要はありません! 必要に応じて、これを同期的に行うこともできます。

new File('path/to/file').createSync(recursive: true);
于 2014-10-11T14:11:32.130 に答える
10

簡単なコード:

import 'dart:io';

void createFileRecursively(String filename) {
  // Create a new directory, recursively creating non-existent directories.
  new Directory.fromPath(new Path(filename).directoryPath)
      .createSync(recursive: true);
  new File(filename).createSync();
}

createFileRecursively('foo/bar/baz/bleh.html');
于 2013-03-08T09:35:48.893 に答える