|  | // 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. | 
|  |  | 
|  | library filenames; | 
|  |  | 
|  | import 'dart:io'; | 
|  |  | 
|  | // For information about how to convert Windows file names to URIs: | 
|  | // http://blogs.msdn.com/b/ie/archive/2006/12/06/file-uris-in-windows.aspx | 
|  |  | 
|  | String nativeToUriPath(String filename) { | 
|  | // TODO(ahe): It would be nice to use a Dart library instead. | 
|  | if (!Platform.isWindows) return filename; | 
|  | filename = filename.replaceAll('\\', '/'); | 
|  | if (filename.length > 2 && filename[1] == ':') { | 
|  | filename = "/$filename"; | 
|  | } | 
|  | return filename; | 
|  | } | 
|  |  | 
|  | String uriPathToNative(String path) { | 
|  | // TODO(ahe): It would be nice to use a Dart library instead. | 
|  | if (!Platform.isWindows) return path; | 
|  | if (path.length > 3 && path[0] == '/' && path[2] == ':') { | 
|  | return path.substring(1).replaceAll('/', '\\'); | 
|  | } else { | 
|  | return path.replaceAll('/', '\\'); | 
|  | } | 
|  | } | 
|  |  | 
|  | final Uri currentDirectory = new Uri( | 
|  | scheme: 'file', | 
|  | path: appendSlash(nativeToUriPath(new File('.').fullPathSync()))); | 
|  |  | 
|  | String appendSlash(String path) => path.endsWith('/') ? path : '$path/'; |