private static string applicationPath = null; private static string applicationPhysicalPath = null; /// <summary> /// 返回当前Web应用程序的根虚拟目录,结尾不带斜杠/。 /// </summary> public static string ApplicationPath { get { if (applicationPath == null) { return VirtualPathUtility.ToAbsolute("~").TrimEnd('/'); //优点:不依赖于HttpContext.Current是否为空 } return applicationPath; } } /// <summary> /// 返回当前Web应用程序的根物理目录,结尾不带斜杠/。 /// </summary> public static string ApplicationPhysicalPath { get { if (applicationPhysicalPath == null) { applicationPhysicalPath = AppDomain.CurrentDomain.BaseDirectory.Replace("/", Path.DirectorySeparatorChar.ToString()).TrimEnd(Path.DirectorySeparatorChar); } return applicationPhysicalPath; } } /// <summary> /// 将虚拟目录映射为物理目录。 /// </summary> public static string MapPath(string virtualPath) { return string.Concat ( ApplicationPhysicalPath.TrimEnd(Path.DirectorySeparatorChar), Path.DirectorySeparatorChar.ToString(), virtualPath.Replace("/", Path.DirectorySeparatorChar.ToString()).Replace("~", "").TrimStart(Path.DirectorySeparatorChar) ); } /// <summary> /// 将一个对象转换为另外一个给定的类型 /// </summary> public static T ChangeType<T>(object value) { if (value == null) { return default(T); } TypeConverter tc = TypeDescriptor.GetConverter(typeof(T)); if (tc.CanConvertFrom(value.GetType())) { return (T)tc.ConvertFrom(value); } else { return (T)Convert.ChangeType(value, typeof(T)); } }
// 取得字符串字节长度 public static int GetByteLength(string asSource, string asCharset) { if (asSource == null || asSource.Length == 0) { return 0; } Encoding oEncoding; if (asCharset.Length != 0) { oEncoding = Encoding.GetEncoding(asCharset); } else { oEncoding = Encoding.Default; } return oEncoding.GetByteCount(asSource); }