anchor.diff:    bool isDirectory() {
       return _newDirectory().existsSync();
     }
  -  Uri toURI() => new Uri(path: _path.toString());
  +  Uri toURI() => pathos.toUri(_path);
     String readAsStringSync() => _newFile().readAsStringSync();
     int lastModified() {
       if (!_newFile().existsSync()) return 0;
  
positive.code: class JavaFile {
    static final String separator = Platform.pathSeparator;
    static final int separatorChar = Platform.pathSeparator.codeUnitAt(0);
    Path _path;
    JavaFile(String path) {
      this._path = new Path(path);
    }
    JavaFile.relative(JavaFile base, String child) {
      if (child.isEmpty) {
        this._path = base._path;
      } else {
        this._path = base._path.join(new Path(child));
      }
    }
    JavaFile.fromUri(Uri uri) : this(uri.path);
    int get hashCode => _path.hashCode;
    bool operator ==(other) {
      return other is JavaFile && other._path.toNativePath() == _path.toNativePath();
    }
    String getPath() => _path.toNativePath();
    String getName() => _path.filename;
    String getParent() {
      var result = _path.directoryPath.toNativePath();
      // "." or  "/" or  "C:\"
      if (result.length < 4) return null;
      return result;
  
negative.code:     if (parent == null) return null;
      return new JavaFile(parent);
    }
    String getAbsolutePath() => pathos.absolute(_path);
    String getCanonicalPath() => _newFile().fullPathSync();
    JavaFile getAbsoluteFile() => new JavaFile(getAbsolutePath());
    JavaFile getCanonicalFile() => new JavaFile(getCanonicalPath());
    bool exists() {
  