private VFile getVFile() {
   VFile vf = this.mVFile;
   if (vf == null) {
     VFile parent = this.mParent.getVFile();
     vf = parent.getVFS().newFile(parent, this.getName());
     this.mVFile = vf;
   }
   return vf;
 }
    public void setPath(VFile file) {

      this.mVFile = file;

      String name_f = file.getName();
      String name_n = this.getName();

      if (name_n == null) {
        // skip
      } else if (name_n.equals("")) {
        // skip
      } else if (name_n.equals("*")) {
        // skip
      } else {
        if (!name_n.equals(name_f)) {
          throw new RuntimeException("required a '" + name_n + "' but get a '" + name_f + "'");
        }
      }

      NodeShell parent = this.mParent;
      if (parent != null) {
        parent.setPath(file.getParentFile());
      }
    }