public cape.File writeToDir(cape.File dir, bool fullPath = true, bool overwrite = true) { if (!(dir != null)) { return(null); } if (!(name != null)) { return(null); } cape.File path = null; if (fullPath == false) { string nn = null; var r = cape.String.lastIndexOf(name, '/'); if (r < 1) { nn = name; } else { nn = cape.String.subString(name, r + 1); } if (object.Equals(nn, null) || cape.String.getLength(nn) < 1) { return(null); } path = dir.entry(nn); } else { path = dir; var array = cape.String.split(name, '/'); if (array != null) { var n = 0; var m = array.Count; for (n = 0; n < m; n++) { var x = array[n]; if (x != null) { if (x != null && cape.String.getLength(x) > 0) { path = path.entry(x); } } } } var dd = path.getParent(); if (!dd.isDirectory()) { dd.createDirectoryRecursive(); } if (!dd.isDirectory()) { return(null); } } if (overwrite == false) { if (path.exists()) { return(null); } } if (!writeToFile(path)) { return(null); } return(path); }