blob: 7c09b7014e012f8c35487ae0c651bece05feaee6 [file] [log] [blame]
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// TODO(terry): Investigate common library for file I/O shared between frog and tools.
library file_system_vm;
import 'dart:io';
import 'file_system.dart';
import 'dart:utf';
/** File system implementation using the vm api's. */
class VMFileSystem implements FileSystem {
void writeString(String path, String text) {
var file = new File(path).openSync(mode: FileMode.WRITE);
file.writeStringSync(text);
file.closeSync();
}
String readAll(String filename) {
var file = (new File(filename)).openSync();
var length = file.lengthSync();
var buffer = new List<int>(length);
var bytes = file.readListSync(buffer, 0, length);
file.closeSync();
return new String.fromCharCodes(new Utf8Decoder(buffer).decodeRest());
}
bool fileExists(String filename) {
return new File(filename).existsSync();
}
void createDirectory(String path, [bool recursive = false]) {
// TODO(rnystrom): Implement.
throw 'createDirectory() is not implemented by VMFileSystem yet.';
}
void removeDirectory(String path, [bool recursive = false]) {
// TODO(rnystrom): Implement.
throw 'removeDirectory() is not implemented by VMFileSystem yet.';
}
}