// Copyright (c) 2012, 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(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.fixedLength(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.'; } }