ライブラリ内のFile
クラスには、メソッドdart:io
が含まれていません。copy()
move()
彼らが到着するまで私を乗り切るために、私は自分のコピー機能をロールしようとしています. Windows で以下のコードを使用していますが、0kb ファイルが作成されるだけです。
void copyFile(String input, String output) {
var inFile = new File(input), outFile = new File(output);
if (outFile.existsSync()) outFile.deleteSync(); // I realize this isn't required
var inStream = null, outStream = null;
try {
inStream = inFile.openInputStream();
outStream = outFile.openOutputStream(FileMode.WRITE);
inStream.pipe(outStream);
} finally {
if (outStream != null && !outStream.closed) outStream.close();
if (inStream != null && !inStream.closed) inStream.close();
}
}
pipe
また、行を次のprint(inStream.read(100).toString());
ように置き換えてみましたが、null
. 入力ファイルは存在します (存在しないと、FileIOException が発生します)。何か間違ったことをしていますか、それとも Windows で入力ストリームが壊れていますか?
私は使用しています:
- Dart Editor バージョン 0.3.1_r17463
- Dart SDK バージョン 0.3.1.2_r17463
編集:次のように機能します(ただし、「チャンク」はしません)。上記のストリームを間違って使用していますか?
void copyFile(String input, String output) {
var inFile = new File(input), outFile = new File(output);
if (outFile.existsSync()) outFile.deleteSync(); // I realize this isn't required
outFile.writeAsBytesSync(inFile.readAsBytesSync(), FileMode.WRITE);
}