/// <summary> /// Extracts part(s) from a specified path. /// </summary> /// <param name="path">The path to be parsed.</param> /// <param name="options">Flags determining the result.</param> /// <returns> /// If <paramref name="options"/> is <see cref="PathInfoOptions.All"/> then returns array /// keyed by <c>"dirname"</c>, <c>"basename"</c>, and <c>"extension"</c>. Otherwise, /// it returns string value containing a single part of the path. /// </returns> public static PhpValue pathinfo(string path, PathInfoOptions options = PathInfoOptions.All) { // collect strings string dirname = null, basename = null, extension = null, filename = null; if ((options & PathInfoOptions.BaseName) != 0 || (options & PathInfoOptions.Extension) != 0 || (options & PathInfoOptions.FileName) != 0) { basename = PhpPath.basename(path); } if ((options & PathInfoOptions.DirName) != 0) { dirname = PhpPath.dirname(path); } if ((options & PathInfoOptions.Extension) != 0) { int last_dot = basename.LastIndexOf('.'); if (last_dot >= 0) { extension = basename.Substring(last_dot + 1); } } if ((options & PathInfoOptions.FileName) != 0) { int last_dot = basename.LastIndexOf('.'); if (last_dot >= 0) { filename = basename.Substring(0, last_dot); } else { filename = basename; } } // return requested value or all of them in an associative array if (options == PathInfoOptions.All) { var result = new PhpArray(4); result.Add("dirname", dirname); result.Add("basename", basename); result.Add("extension", extension); result.Add("filename", filename); return(PhpValue.Create(result)); } if ((options & PathInfoOptions.DirName) != 0) { return(PhpValue.Create(dirname)); } if ((options & PathInfoOptions.BaseName) != 0) { return(PhpValue.Create(basename)); } if ((options & PathInfoOptions.Extension) != 0) { return(PhpValue.Create(extension)); } if ((options & PathInfoOptions.FileName) != 0) { return(PhpValue.Create(filename)); } return(PhpValue.Null); }
public static PathInfoResult PathInfo(string path, PathInfoOptions options) { #warning 'Implementacja możliwa'; return(new PathInfoResult()); }
public static object GetInfo(string path, PathInfoOptions options) { // collect strings string dirname = null, basename = null, extension = null, filename = null; if ((options & PathInfoOptions.BaseName) != 0 || (options & PathInfoOptions.Extension) != 0 || (options & PathInfoOptions.FileName) != 0) { basename = GetBase(path); } if ((options & PathInfoOptions.DirName) != 0) { dirname = GetDirectory(path); } if ((options & PathInfoOptions.Extension) != 0) { int last_dot = basename.LastIndexOf('.'); if (last_dot >= 0) { extension = basename.Substring(last_dot + 1); } } if ((options & PathInfoOptions.FileName) != 0) { int last_dot = basename.LastIndexOf('.'); if (last_dot >= 0) { filename = basename.Substring(0, last_dot); } else { filename = basename; } } // return requested value or all of them in an associative array if (options == PathInfoOptions.All) { PhpArray result = new PhpArray(0, 4); result.Add("dirname", dirname); result.Add("basename", basename); result.Add("extension", extension); result.Add("filename", filename); return(result); } if ((options & PathInfoOptions.DirName) != 0) { return(dirname); } if ((options & PathInfoOptions.BaseName) != 0) { return(basename); } if ((options & PathInfoOptions.Extension) != 0) { return(extension); } if ((options & PathInfoOptions.FileName) != 0) { return(filename); } return(null); }
public static PathInfoResult PathInfo(string path, PathInfoOptions options) { #warning 'Implementacja możliwa'; return new PathInfoResult(); }
/// <summary> /// Extracts part(s) from a specified path. /// </summary> /// <param name="path">The path to be parsed.</param> /// <param name="options">Flags determining the result.</param> /// <returns> /// If <paramref name="options"/> is <see cref="PathInfoOptions.All"/> then returns array /// keyed by <c>"dirname"</c>, <c>"basename"</c>, and <c>"extension"</c>. Otherwise, /// it returns string value containing a single part of the path. /// </returns> public static PhpValue pathinfo(string path, PathInfoOptions options = PathInfoOptions.All) { // collect strings string dirname = null, basename = null, extension = null, filename = null; if ((options & PathInfoOptions.BaseName) != 0 || (options & PathInfoOptions.Extension) != 0 || (options & PathInfoOptions.FileName) != 0) basename = PhpPath.basename(path); if ((options & PathInfoOptions.DirName) != 0) dirname = PhpPath.dirname(path); if ((options & PathInfoOptions.Extension) != 0) { int last_dot = basename.LastIndexOf('.'); if (last_dot >= 0) extension = basename.Substring(last_dot + 1); } if ((options & PathInfoOptions.FileName) != 0) { int last_dot = basename.LastIndexOf('.'); if (last_dot >= 0) filename = basename.Substring(0, last_dot); else filename = basename; } // return requested value or all of them in an associative array if (options == PathInfoOptions.All) { PhpArray result = new PhpArray(0, 4); result.Add("dirname", dirname); result.Add("basename", basename); result.Add("extension", extension); result.Add("filename", filename); return PhpValue.Create(result); } if ((options & PathInfoOptions.DirName) != 0) return PhpValue.Create(dirname); if ((options & PathInfoOptions.BaseName) != 0) return PhpValue.Create(basename); if ((options & PathInfoOptions.Extension) != 0) return PhpValue.Create(extension); if ((options & PathInfoOptions.FileName) != 0) return PhpValue.Create(filename); return PhpValue.Null; }
public static object GetInfo(string path, PathInfoOptions options) { // collect strings string dirname = null, basename = null, extension = null, filename = null; if ((options & PathInfoOptions.BaseName) != 0 || (options & PathInfoOptions.Extension) != 0 || (options & PathInfoOptions.FileName) != 0 ) basename = GetBase(path); if ((options & PathInfoOptions.DirName) != 0) dirname = GetDirectory(path); if ((options & PathInfoOptions.Extension) != 0) { int last_dot = basename.LastIndexOf('.'); if (last_dot >= 0) extension = basename.Substring(last_dot + 1); } if ((options & PathInfoOptions.FileName) != 0) { int last_dot = basename.LastIndexOf('.'); if (last_dot >= 0) filename = basename.Substring(0, last_dot); else filename = basename; } // return requested value or all of them in an associative array if (options == PathInfoOptions.All) { PhpArray result = new PhpArray(0, 4); result.Add("dirname", dirname); result.Add("basename", basename); result.Add("extension", extension); result.Add("filename", filename); return result; } if ((options & PathInfoOptions.DirName) != 0) return dirname; if ((options & PathInfoOptions.BaseName) != 0) return basename; if ((options & PathInfoOptions.Extension) != 0) return extension; if ((options & PathInfoOptions.FileName) != 0) return filename; return null; }