• .NET开发中你可能会用到的常用方法总结


    将文件转换成字符串,常用于读取网站模板

    /// <summary>
        /// 将文件转换成字符串,常用于读取网站模板
        /// </summary>
        /// <param name="path"></param>
        /// <param name="isSpace"></param>
        /// <returns></returns>
        public static string GetTempleContent(string path)
        {
            string result = string.Empty;
            string sFileName = HttpContext.Current.Server.MapPath(path);
            if (File.Exists(sFileName))
            {
                try
                {
                    using (StreamReader sr = new StreamReader(sFileName))
                    {
                        result = sr.ReadToEnd();
                    }
                }
                catch
                {
                    result = "读取模板文件(" + path + ")出错";
                }
            }
            else
            {
                result = "找不到模板文件:" + path;
            }
            return result;
        }
    读取,添加,修改xml文件

    /// <summary>
        /// 读取,添加,修改xml文件
        /// </summary>
        /// <param name="Xmlpath">Xml路径</param>
        /// <param name="Node">新的子节点名称</param>
        /// <param name="Value">新节点对应的值</param>
        /// <param name="flag">1:读取,否则为 修改或者添加</param>
        /// <returns>1:修改添加成功,为空字符串表示修改添加成功,否则是读取成功</returns>
        public static string getXML(string Xmlpath, string Node, string Value, int flag)
        {
            try
            {
                string filepath = HttpContext.Current.Server.MapPath(Xmlpath);
                XmlDocument xmlDoc = new XmlDocument();
                if (!File.Exists(filepath))
                {
                    XmlDeclaration xn = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", null);
                    XmlElement root = xmlDoc.CreateElement("rss");
                    XmlElement root1 = xmlDoc.CreateElement("item");

                    root.AppendChild(root1);
                    xmlDoc.AppendChild(xn);
                    xmlDoc.AppendChild(root);
                    xmlDoc.Save(filepath);//本地路径名字
                }
                xmlDoc.Load(filepath);//你的xml文件
                string ReStr = string.Empty;
                XmlElement xmlObj = xmlDoc.DocumentElement;

                XmlNodeList xmlList = xmlDoc.SelectSingleNode(xmlObj.Name.ToString()).ChildNodes;

                foreach (XmlNode xmlNo in xmlList)
                {
                    if (xmlNo.NodeType != XmlNodeType.Comment)//判断是不是注释类型
                    {
                        XmlElement xe = (XmlElement)xmlNo;
                        {
                            if (xe.Name == xmlObj.FirstChild.Name)
                            {
                                XmlNodeList xmlNList = xmlObj.FirstChild.ChildNodes;

                                foreach (XmlNode xmld in xmlNList)
                                {
                                    XmlElement xe1 = (XmlElement)xmld;
                                    {
                                        if (xe1.Name == Node)
                                        {
                                            if (flag == 1)//读取值
                                            {
                                                if (xmld.InnerText != null && xmld.InnerText != "")
                                                {
                                                    ReStr = xmld.InnerText;
                                                }
                                            }
                                            else//修改值
                                            {
                                                xmld.InnerText = Value;//给节点赋值
                                                xmlDoc.Save(filepath);
                                                ReStr = Value.Trim();
                                            }
                                        }
                                    }
                                }
                                if (ReStr == string.Empty)// 添加节点
                                {
                                    XmlNode newNode;
                                    newNode = xmlDoc.CreateNode("element", Node, Value);//创建节点
                                    newNode.InnerText = Value;//给节点赋值
                                    xe.AppendChild(newNode);//把节点添加到doc
                                    xmlDoc.Save(filepath);
                                    ReStr = Value.Trim();
                                }
                            }
                        }
                    }
                }
                return ReStr;
            }
            catch
            {
                return string.Empty;
            }
        }
    取得文件扩展名
     
    /// <summary>
        /// 取得文件扩展名
        /// </summary>
        /// <param name="filename">文件名</param>
        /// <returns>扩展名</returns>
        public static string GetFileEXT(string filename)
        {
            if (string.IsNullOrEmpty(filename))
            {
                return "";
            }
            if (filename.IndexOf(@".") == -1)
            {
                return "";
            }
            int pos = -1;
            if (!(filename.IndexOf(@"\") == -1))
            {
                pos = filename.LastIndexOf(@"\");
            }
            string[] s = filename.Substring(pos + 1).Split('.');
            return s[1];
        }
    替换文本中的空格和换行

    /// <summary>
        /// 替换文本中的空格和换行
        /// </summary>
        public static string ReplaceSpace(string str)
        {
            string s = str;
            s = s.Replace(" ", "&nbsp;");
            s = s.Replace("\n", "<BR />");
            return s;
        }
    验证码实现方法

        protected void Page_Load(object sender, EventArgs e)
        {
             string checkCode = CreateRandomCode(4);
              Session["CheckCode"] = checkCode;
              CreateImage(checkCode);
        }
         private string CreateRandomCode(int codeCount)
        {

            // 函数功能:产生数字和字符混合的随机字符串
            string allChar = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
            char[] allCharArray = allChar.ToCharArray();
            string randomCode = "";
            Random rand = new Random();
            for (int i = 0; i < codeCount; i++)
            {
               int r=rand.Next(61);
               randomCode+=allCharArray.GetValue(r);
            }
             return randomCode;
            
         }
             

        private void CreateImage(string checkCode)
        {

            // 生成图象验证码函数
           int iwidth = (int)(checkCode.Length * 11.5);
            System.Drawing.Bitmap image = new System.Drawing.Bitmap(iwidth, 20);
            Graphics g = Graphics.FromImage(image);
            Font f = new System.Drawing.Font("Arial", 10, System.Drawing.FontStyle.Bold);
            Brush b = new System.Drawing.SolidBrush(Color.Azure);//字母白色
            //g.FillRectangle(new System.Drawing.SolidBrush(Color.Blue),0,0,image.Width, image.Height);
            g.Clear(Color.Brown);//背景灰色
            g.DrawString(checkCode, f, b, 3, 3);

            Pen blackPen = new Pen(Color.Black, 0);
            Random rand = new Random();
            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
            Response.ClearContent();
            Response.ContentType = "image/Jpeg";
            Response.BinaryWrite(ms.ToArray());
            g.Dispose();
            image.Dispose();
        }
    文件创建、复制、移动、删除

    FileStream fs;
     //创建文件
     fs = File.Create(Server.MapPath("a.txt"));
     fs.Close();
     fs = File.Create(Server.MapPath("b.txt"));
     fs.Close();
     fs = File.Create(Server.MapPath("c.txt"));
     fs.Close();
     //复制文件
     File.Copy(Server.MapPath("a.txt"), Server.MapPath("a\\a.txt"));
     //移动文件
     File.Move(Server.MapPath("b.txt"), Server.MapPath("a\\b.txt"));
     File.Move(Server.MapPath("c.txt"), Server.MapPath("a\\c.txt"));
     //删除文件
     File.Delete(Server.MapPath("a.txt"));
    去掉结尾,

    /// <summary>
        /// 去掉结尾,
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public static string LostDot(string input)
        {
            if (string.IsNullOrEmpty(input))
            {
                return string.Empty;
            }
            else
            {
                if (input.IndexOf(",") > -1)
                {
                    int intLast = input.LastIndexOf(",");
                    if ((intLast + 1) == input.Length)
                    {
                        return input.Remove(intLast);
                    }
                    else
                    {
                        return input;
                    }
                }
                else
                {
                    return input;
                }
            }
        }
    生成任意位数的随机数
     
    /// <summary>
        /// 生成随机数
        /// </summary>
        /// <param name="minValue">最小值</param>
        /// <param name="maxValue">最大值</param>
        /// <returns></returns>
        private int getRandom(int minValue, int maxValue)
        {
            Random ri = new Random(unchecked((int)DateTime.Now.Ticks));
            int k = ri.Next(minValue, maxValue);
            return k;
        }

    //想定一个三位的随机数:string ThreeRandom=this.getRandom(100,999).Tostring();
    //类似的,四位随机数:string FourRandom=this.getRandom(1000,9999).Tostring();
    实现文件的上传

    public class Upload
        {
            private System.Web.HttpPostedFile postedFile = null;
            private string savePath = "";
            private string extension = "";
            private int fileLength = 0;
            private string filename = "";
            /// <summary>
            /// 上传组件
            /// </summary>
            public System.Web.HttpPostedFile PostedFile
            {
                get
                {
                    return postedFile;
                }
                set
                {
                    postedFile = value;
                }
            }
            /// <summary>
            /// 保存路径
            /// </summary>
            public string SavePath
            {
                get
                {
                    if (savePath != "") return savePath;
                    return "c:\\";
                }
                set
                {
                    savePath = value;
                }
            }
            /// <summary>
            /// 文件大小
            /// </summary>
            public int FileLength
            {
                get
                {
                    if (fileLength != 0) return fileLength;
                    return 1024;
                }
                set
                {
                    fileLength = value * 1024;
                }
            }
            /// <summary>
            /// 文件护展名
            /// </summary>
            public string Extension
            {
                get
                {
                    if (extension != "")
                        return extension;
                    return "txt";
                }
                set
                {
                    extension = value;
                }
            }
            /// <summary>
            /// 文件名
            /// </summary>
            public string FileName
            {
                get
                {
                    return filename;
                }
                set
                {
                    filename = value;
                }
            }
            public string PathToName(string path)
            {
                int pos = path.LastIndexOf(@"\");
                return path.Substring(pos + 1);
            }
            /// <summary>
            /// 上传文件
            /// </summary>
            /// <returns></returns>
            public string UploadStart()
            {
                bool tf = false;
                string returnvalue = "";
                if (PostedFile != null)
                {
                    try
                    {
                        string fileName = PathToName(PostedFile.FileName);
                        if (filename != "")
                        {
                            fileName = filename;
                        }
                        string _fileName = "";

                        string[] Exten = Extension.Split(',');
                        if (Exten.Length == 0)
                        {
                            returnvalue = "你未设置上传文件类型,系统不允许进行下一步操作!";
                        }
                        else
                        {
                            for (int i = 0; i < Exten.Length; i++)
                            {
                                if (fileName.ToLower().EndsWith(Exten[i].ToLower()))
                                {
                                    if (PostedFile.ContentLength > FileLength)
                                    {
                                        returnvalue = "上传文件限制大小:" + FileLength / 1024 + "kb!";
                                    }
                                    string IsFileex = SavePath + @"\" + fileName;
                                    if (!Directory.Exists(SavePath)) { Directory.CreateDirectory(SavePath); }
                                    PostedFile.SaveAs(IsFileex);
                                    _fileName = fileName;
                                    tf = true;
                                    returnvalue = IsFileex ;
                                }
                            }
                            if (tf == false)
                                returnvalue = "只允许上传" + Extension + " 文件!";
                        }
                    }
                    catch (System.Exception exc)
                    {
                        returnvalue = exc.Message;
                    }
                }
                else
                {
                    returnvalue = "上文件失败!";
                }
                return returnvalue;
            }
        }
    判断输入是否为日期类型

     /// <summary>
            /// 判断输入是否为日期类型
            /// </summary>
            /// <param name="s">待检查数据</param>
            /// <returns></returns>
            public static bool IsDate(string s)
            {
                if (s == null)
                {
                    return false;
                }
                else
                {
                    try
                    {
                        DateTime d = DateTime.Parse(s);
                        return true;
                    }
                    catch
                    {
                        return false;
                    }
                }
            }
    MD5加密字符串处理

    /// <summary>
            /// MD5加密字符串处理
            /// </summary>
            /// <param name="Half">加密是16位还是32位;如果为true为16位</param>
            public static string MD5(string Input, bool Half)
            {
                string output = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(Input, "MD5").ToLower();
                if (Half) output = output.Substring(8, 16);
                return output;
            }

            public static string MD5(string Input)
            {
                return MD5(Input, true);
            }
    过滤非法字符,防止注入式攻击等

    /// <summary>
            /// 过滤字符
            /// </summary>
            public static string Filter(string sInput)
            {
                if (sInput == null || sInput.Trim() == string.Empty)
                    return null;
                string sInput1 = sInput.ToLower();
                string output = sInput;
                string pattern = @"*|and|exec|insert|select|delete|update|count|master|truncate|declare|char(|mid(|chr(|'";
                if (Regex.Match(sInput1, Regex.Escape(pattern), RegexOptions.Compiled | RegexOptions.IgnoreCase).Success)
                {
                    throw new Exception("字符串中含有非法字符!");
                }
                else
                {
                    output = output.Replace("'", "''");
                }
                return output;
            }
    常用的加密解密(DES,RSA)

        using System.Security.Cryptography;
    using System.Text;

        /// <summary>
        /// DES加密
        /// </summary>
        /// <param name="input">待加密的字符串</param>
        /// <param name="key">加密密钥</param>
        /// <returns></returns>
        public static string Encrypt(string EncryptString, byte[] Key, byte[] IV)
        {
            //byte[] rgbKey = Encoding.UTF8.GetBytes(key.Substring(0, 8));
            byte[] inputByteArray = Encoding.UTF8.GetBytes(EncryptString);
            DESCryptoServiceProvider des = new DESCryptoServiceProvider();
            MemoryStream mStream = new MemoryStream();
            CryptoStream cStream = new CryptoStream(mStream, des.CreateEncryptor(Key, IV), CryptoStreamMode.Write);
            cStream.Write(inputByteArray, 0, inputByteArray.Length);
            cStream.FlushFinalBlock();
            return Convert.ToBase64String(mStream.ToArray());
        }
        /// <summary>
        /// DES解密
        /// </summary>
        /// <param name="input">待解密的字符串</param>
        /// <param name="key">解密密钥,要求为8位,和加密密钥相同</param>
        /// <returns>解密成功返回解密后的字符串,失败返源串</returns>
        public static string Decrypt(string DecryptString, byte[] Key, byte[] IV)
        {
            try
            {
                //byte[] rgbKey = Encoding.UTF8.GetBytes(Key);
                byte[] inputByteArray = Convert.FromBase64String(DecryptString);
                DESCryptoServiceProvider des = new DESCryptoServiceProvider();

                MemoryStream mStream = new MemoryStream();
                CryptoStream cStream = new CryptoStream(mStream, des.CreateDecryptor(Key, IV), CryptoStreamMode.Write);
                cStream.Write(inputByteArray, 0, inputByteArray.Length);
                cStream.FlushFinalBlock();
                return Encoding.UTF8.GetString(mStream.ToArray());
            }
            catch
            {
                return "";
            }
        }
    }
    /// <summary>
    /// RSA加解密算法
    /// </summary>
    public class RSA
    {
        /// <summary>
        /// RSA加密函数
        /// </summary>
        /// <param name="xmlPublicKey">说明KEY必须是XML的行式,返回的是字符串</param>
        /// <param name="EncryptString"></param>
        /// <returns></returns>
        public string Encrypt(string xmlPublicKey, string EncryptString)
        {
            byte[] PlainTextBArray;
            byte[] CypherTextBArray;
            string Result;
            RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
            rsa.FromXmlString(xmlPublicKey);
            PlainTextBArray = (new UnicodeEncoding()).GetBytes(EncryptString);
            CypherTextBArray = rsa.Encrypt(PlainTextBArray, false);
            Result = Convert.ToBase64String(CypherTextBArray);
            return Result;
        }
        /// <summary>
        /// RSA解密函数
        /// </summary>
        /// <param name="xmlPrivateKey"></param>
        /// <param name="DecryptString"></param>
        /// <returns></returns>
        public string Decrypt(string xmlPrivateKey, string DecryptString)
        {
            byte[] PlainTextBArray;
            byte[] DypherTextBArray;
            string Result;
            RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
            rsa.FromXmlString(xmlPrivateKey);
            PlainTextBArray = Convert.FromBase64String(DecryptString);
            DypherTextBArray = rsa.Decrypt(PlainTextBArray, false);
            Result = (new UnicodeEncoding()).GetString(DypherTextBArray);
            return Result;
        }

        /// <summary>
        /// 产生RSA的密钥
        /// </summary>
        /// <param name="xmlKeys">私钥</param>
        /// <param name="xmlPublicKey">公钥</param>
        public void RSAKey(out string xmlKeys, out string xmlPublicKey)
        {
            RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
            xmlKeys = rsa.ToXmlString(true);
            xmlPublicKey = rsa.ToXmlString(false);
        }
    写入读取Cookie值
     
    /// <summary>
            /// 写cookie值
            /// </summary>
            /// <param name="strName">名称</param>
            /// <param name="strValue">值</param>
            /// <param name="strValue">过期时间(分钟)</param>
            public static void WriteCookie(string strName, string strValue, int expires)
            {
                HttpCookie cookie = HttpContext.Current.Request.Cookies[strName];
                if (cookie == null)
                {
                    cookie = new HttpCookie(strName);
                }
                cookie.Value = strValue;
                cookie.Expires = DateTime.Now.AddMinutes(expires);
                HttpContext.Current.Response.AppendCookie(cookie);
            }
            /// <summary>
            /// 读cookie值
            /// </summary>
            /// <param name="strName">名称</param>
            /// <returns>cookie值</returns>
            public static string GetCookie(string strName)
            {
                if (HttpContext.Current.Request.Cookies != null && HttpContext.Current.Request.Cookies[strName] != null)
                {
                    return HttpContext.Current.Request.Cookies[strName].Value.ToString();
                }
                return "";
            }
    读取配置文件的节点内容
     
    /// <summary>
            /// 读取配置文件
            /// </summary>
            /// <param name="Target"></param>
            /// <param name="ConfigPathName"></param>
            /// <returns></returns>
            static internal string GetConfigValue(string Target, string XmlPath)
            {
                System.Xml.XmlDocument xdoc = new XmlDocument();
                xdoc.Load(XmlPath);
                XmlElement root = xdoc.DocumentElement;
                XmlNodeList elemList = root.GetElementsByTagName(Target);
                return elemList[0].InnerXml;
            }
    取单个字符的拼音声母

    /// <summary> 
            /// 取单个字符的拼音声母 
            /// </summary> 
            /// <param name="c">要转换的单个汉字</param> 
            /// <returns>拼音声母</returns> 
            private static string GetPYChar(string c)
            {
                byte[] array = new byte[2];
                array = System.Text.Encoding.Default.GetBytes(c);
                int i = (short)(array[0] - '\0') * 256 + ((short)(array[1] - '\0'));
                if (i < 0xB0A1) return "*";
                if (i < 0xB0C5) return "A";
                if (i < 0xB2C1) return "B";
                if (i < 0xB4EE) return "C";
                if (i < 0xB6EA) return "D";
                if (i < 0xB7A2) return "E";
                if (i < 0xB8C1) return "F";
                if (i < 0xB9FE) return "G";
                if (i < 0xBBF7) return "H";
                if (i < 0xBFA6) return "G";
                if (i < 0xC0AC) return "K";
                if (i < 0xC2E8) return "L";
                if (i < 0xC4C3) return "M";
                if (i < 0xC5B6) return "N";
                if (i < 0xC5BE) return "O";
                if (i < 0xC6DA) return "P";
                if (i < 0xC8BB) return "Q";
                if (i < 0xC8F6) return "R";
                if (i < 0xCBFA) return "S";
                if (i < 0xCDDA) return "T";
                if (i < 0xCEF4) return "W";
                if (i < 0xD1B9) return "X";
                if (i < 0xD4D1) return "Y";
                if (i < 0xD7FA) return "Z";
                return "*";
            }
    变量.ToString()

       //字符型转换 转为字符串  
       12345.ToString("n");        //生成   12,345.00  
       12345.ToString("C");        //生成 ¥12,345.00  
       12345.ToString("e");        //生成 1.234500e+004  
       12345.ToString("f4");        //生成 12345.0000  
       12345.ToString("x");         //生成 3039  (16进制)  
       12345.ToString("p");         //生成 1,234,500.00%  
    时间的处理

    DateTime dt = DateTime.Now;
    Label1.Text = dt.ToString();//2005-11-5 13:21:25
    Label2.Text = dt.ToFileTime().ToString();//127756416859912816
    Label3.Text = dt.ToFileTimeUtc().ToString();//127756704859912816
    Label4.Text = dt.ToLocalTime().ToString();//2005-11-5 21:21:25
    Label5.Text = dt.ToLongDateString().ToString();//2005年11月5日
    Label6.Text = dt.ToLongTimeString().ToString();//13:21:25
    Label7.Text = dt.ToOADate().ToString();//38661.5565508218
    Label8.Text = dt.ToShortDateString().ToString();//2005-11-5
    Label9.Text = dt.ToShortTimeString().ToString();//13:21
    Label10.Text = dt.ToUniversalTime().ToString();//2005-11-5 5:21:25
    ?2005-11-5 13:30:28.4412864
    Label1.Text = dt.Year.ToString();//2005
    Label2.Text = dt.Date.ToString();//2005-11-5 0:00:00
    Label3.Text = dt.DayOfWeek.ToString();//Saturday
    Label4.Text = dt.DayOfYear.ToString();//309
    Label5.Text = dt.Hour.ToString();//13
    Label6.Text = dt.Millisecond.ToString();//441
    Label7.Text = dt.Minute.ToString();//30
    Label8.Text = dt.Month.ToString();//11
    Label9.Text = dt.Second.ToString();//28
    Label10.Text = dt.Ticks.ToString();//632667942284412864
    Label11.Text = dt.TimeOfDay.ToString();//13:30:28.4412864
    Label1.Text = dt.ToString();//2005-11-5 13:47:04
    Label2.Text = dt.AddYears(1).ToString();//2006-11-5 13:47:04
    Label3.Text = dt.AddDays(1.1).ToString();//2005-11-6 16:11:04
    Label4.Text = dt.AddHours(1.1).ToString();//2005-11-5 14:53:04
    Label5.Text = dt.AddMilliseconds(1.1).ToString();//2005-11-5 13:47:04
    Label6.Text = dt.AddMonths(1).ToString();//2005-12-5 13:47:04
    Label7.Text = dt.AddSeconds(1.1).ToString();//2005-11-5 13:47:05
    Label8.Text = dt.AddMinutes(1.1).ToString();//2005-11-5 13:48:10
    Label9.Text = dt.AddTicks(1000).ToString();//2005-11-5 13:47:04
    Label10.Text = dt.CompareTo(dt).ToString();//0
    //Label11.Text = dt.Add(?).ToString();//问号为一个时间段
    Label1.Text = dt.Equals("2005-11-6 16:11:04").ToString();//False
    Label2.Text = dt.Equals(dt).ToString();//True
    Label3.Text = dt.GetHashCode().ToString();//1474088234
    Label4.Text = dt.GetType().ToString();//System.DateTime
    Label5.Text = dt.GetTypeCode().ToString();//DateTime

    Label1.Text = dt.GetDateTimeFormats('s')[0].ToString();//2005-11-05T14:06:25
    Label2.Text = dt.GetDateTimeFormats('t')[0].ToString();//14:06
    Label3.Text = dt.GetDateTimeFormats('y')[0].ToString();//2005年11月
    Label4.Text = dt.GetDateTimeFormats('D')[0].ToString();//2005年11月5日
    Label5.Text = dt.GetDateTimeFormats('D')[1].ToString();//2005 11 05
    Label6.Text = dt.GetDateTimeFormats('D')[2].ToString();//星期六 2005 11 05
    Label7.Text = dt.GetDateTimeFormats('D')[3].ToString();//星期六 2005年11月5日
    Label8.Text = dt.GetDateTimeFormats('M')[0].ToString();//11月5日
    Label9.Text = dt.GetDateTimeFormats('f')[0].ToString();//2005年11月5日 14:06
    Label10.Text = dt.GetDateTimeFormats('g')[0].ToString();//2005-11-5 14:06
    Label11.Text = dt.GetDateTimeFormats('r')[0].ToString();//Sat, 05 Nov 2005 14:06:25 GMT

    Label1.Text =? string.Format("{0:d}",dt);//2005-11-5
    Label2.Text =? string.Format("{0:D}",dt);//2005年11月5日
    Label3.Text =? string.Format("{0:f}",dt);//2005年11月5日 14:23
    Label4.Text =? string.Format("{0:F}",dt);//2005年11月5日 14:23:23
    Label5.Text =? string.Format("{0:g}",dt);//2005-11-5 14:23
    Label6.Text =? string.Format("{0:G}",dt);//2005-11-5 14:23:23
    Label7.Text =? string.Format("{0:M}",dt);//11月5日
    Label8.Text =? string.Format("{0:R}",dt);//Sat, 05 Nov 2005 14:23:23 GMT
    Label9.Text =? string.Format("{0:s}",dt);//2005-11-05T14:23:23
    Label10.Text = string.Format("{0:t}",dt);//14:23
    Label11.Text = string.Format("{0:T}",dt);//14:23:23
    Label12.Text = string.Format("{0:u}",dt);//2005-11-05 14:23:23Z
    Label13.Text = string.Format("{0:U}",dt);//2005年11月5日 6:23:23
    Label14.Text = string.Format("{0:Y}",dt);//2005年11月
    Label15.Text = string.Format("{0}",dt);//2005-11-5 14:23:23?
    Label16.Text = string.Format("{0:yyyyMMddHHmmssffff}",dt); //yyyymm等可以设置,比如Label16.Text = string.Format("{0:yyyyMMdd}",dt);
    获得ip和mac地址

    using System.Runtime.InteropServices;

    [DllImport("Iphlpapi.dll")]
        private static extern int SendARP(Int32 dest, Int32 host, ref Int64 mac, ref Int32 length);
        [DllImport("Ws2_32.dll")]
        private static extern Int32 inet_addr(string ip);
        protected void Page_Load(object sender, EventArgs e)
        {
            
            // 在此处放置用户代码以初始化页面
            try
            {
                string userip = Request.UserHostAddress;
                string strClientIP = Request.UserHostAddress.ToString().Trim();
                Int32 ldest = inet_addr(strClientIP); //目的地的ip 
                Int32 lhost = inet_addr("");   //本地服务器的ip 
                Int64 macinfo = new Int64();
                Int32 len = 6;
                int res = SendARP(ldest, 0, ref macinfo, ref len);
                string mac_src = macinfo.ToString("X");
                if (mac_src == "0")
                {
                    if (userip == "127.0.0.1")
                        Response.Write("正在访问Localhost!");
                    else
                        Response.Write("欢迎来自IP为" + userip + "的朋友!" + "<br>");
                    return;
                }

                while (mac_src.Length < 12)
                {
                    mac_src = mac_src.Insert(0, "0");
                }

                string mac_dest = "";

                for (int i = 0; i < 11; i++)
                {
                    if (0 == (i % 2))
                    {
                        if (i == 10)
                        {
                            mac_dest = mac_dest.Insert(0, mac_src.Substring(i, 2));
                        }
                        else
                        {
                            mac_dest = "-" + mac_dest.Insert(0, mac_src.Substring(i, 2));
                        }
                    }
                }

                Response.Write("欢迎来自IP为" + userip + "<br>" + ",MAC地址为" + mac_dest + "的朋友!"

                 + "<br>");
            }
            catch (Exception err)
            {
                Response.Write(err.Message);
            }
        }


        private string GetClientIP()
        {
            string result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
            if (null == result || result == String.Empty)
            {
                result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
            } if (null == result || result == String.Empty)
            {
                result = HttpContext.Current.Request.UserHostAddress;
            }
            return result;
        }
    调用Win32 Api函数,非托管DLL
     
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Runtime.InteropServices;
    namespace NetMeeting.API
    {
      public class Win32
      {
        [DllImport("user32.dll", EntryPoint = "MessageBox", ExactSpelling = false)]
        public static extern int MessageBox(int hWnd, string text, string caption, uint type);
      }
    }
    //客户调用:

    using System;
    using NetMeeting.API;
    class test
    {
      public static void Main(string[] agrs)
      {
          Win32.MessageBox(0,"hello ,this is a c# invoke win32 api","test",2);
      }
    }
    生成高质量缩略图

    //方法1
    public static Bitmap CreateThumbnail(Bitmap source, int thumbWi, int thumbHi, bool maintainAspect)
            {
                // return the source image if it's smaller than the designated thumbnail
                if (source.Width < thumbWi && source.Height < thumbHi) return source;

                System.Drawing.Bitmap ret = null;
                try
                {
                    int wi, hi;

                    wi = thumbWi;
                    hi = thumbHi;

                    if (maintainAspect)
                    {
                        // maintain the aspect ratio despite the thumbnail size parameters
                        if (source.Width > source.Height)
                        {
                            wi = thumbWi;
                            hi = (int)(source.Height * ((decimal)thumbWi / source.Width));
                        }
                        else
                        {
                            hi = thumbHi;
                            wi = (int)(source.Width * ((decimal)thumbHi / source.Height));
                        }
                    }

                    // original code that creates lousy thumbnails
                    // System.Drawing.Image ret = source.GetThumbnailImage(wi,hi,null,IntPtr.Zero);
                    ret = new Bitmap(wi, hi);
                    using (Graphics g = Graphics.FromImage(ret))
                    {
                        g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
                        g.FillRectangle(Brushes.White, 0, 0, wi, hi);
                        g.DrawImage(source, 0, 0, wi, hi);
                    }
                }
                catch
                {
                    ret = null;
                }

                return ret;
            }
    //调用
     using (Graphics g = Graphics.FromImage(ret))
                    {
                        g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
                        g.FillRectangle(Brushes.White, 0, 0, wi, hi);
                        g.DrawImage(source, 0, 0, wi, hi);
                    }

    将文件保存到数据库中

    //保存文件到SQL Server数据库中
        private void FileToSql(string fileName,string tableName,string fieldName)
        {
            SqlConnection cn=new SqlConnection ();
            FileInfo fi=new FileInfo(fileName);
            FileStream fs=fi.OpenRead();
            byte[] bytes=new byte[fs.Length];
            fs.Read(bytes,0,Convert.ToInt32(fs.Length));
            SqlCommand cm=new SqlCommand();
            cm.Connection=cn;
            cm.CommandType=CommandType.Text;
            if(cn.State==0) cn.Open();
            cm.CommandText="insert into "+tableName+"("+fieldName+") values(@file)";
            SqlParameter spFile=new SqlParameter("@file",SqlDbType.Image);
            spFile.Value=bytes;
            cm.Parameters.Add(spFile);
            cm.ExecuteNonQuery();
        }
    //保存文件到Access数据库中
        private void FileToAccess(string fileName,string tableName,string fieldName)
        {
            OleDbConnection cn=new OleDbConnection ();
            FileInfo fi=new FileInfo(fileName);
            FileStream fs=fi.OpenRead();
            byte[] bytes=new byte[fs.Length];
            fs.Read(bytes,0,Convert.ToInt32(fs.Length));
            OleDbCommand cm=new OleDbCommand();
            cm.Connection=cn;
            cm.CommandType=CommandType.Text;
            if(cn.State==0) cn.Open();
            cm.CommandText="insert into "+tableName+"("+fieldName+") values(@file)";
            OleDbParameter spFile=new OleDbParameter("@file",OleDbType.Binary);
            spFile.Value=bytes;
            cm.Parameters.Add(spFile);
            cm.ExecuteNonQuery();
        }
        //保存客户端文件到数据库,fl_name为上传控件
        private void FileToDataSourse(string mailid)
        {
            string ConnStr = "";
            string sql = "update t_mail set attachfilename=@attachfilename,attachfile=@attachfile where mailid=" + mailid;
            SqlCommand myCommand = new SqlCommand(sql, new SqlConnection(ConnStr));
            string path = fl_name.PostedFile.FileName;
            string filename = path.Substring(path.LastIndexOf("") + 1, path.Length - path.LastIndexOf("") - 1);
            myCommand.Parameters.Add("@attachfilename", SqlDbType.VarChar);
            myCommand.Parameters["@attachfilename"].Value = filename;
            myCommand.Parameters.Add("@attachfile", SqlDbType.Image);
            Stream fileStream = fl_name.PostedFile.InputStream;
            int intFileSize = fl_name.PostedFile.ContentLength;
            byte[] fileContent = new byte[intFileSize];
            int intStatus = fileStream.Read(fileContent, 0, intFileSize); //文件读取到fileContent数组中
            myCommand.Parameters["@attachfile"].Value = ((byte[])fileContent);
            fileStream.Close();
            myCommand.Connection.Open();
            myCommand.ExecuteNonQuery();
            myCommand.Connection.Close();
        }
    将用户输入的字符串转换为可换行、替换Html编码、无危害数据库特殊字符、去掉首尾空白、的安全方便代码

    public static string ConvertStr(string inputString)
            {
                string retVal = inputString;
                retVal = retVal.Replace("&", "&amp;");
                retVal = retVal.Replace("\"", "&quot;");
                retVal = retVal.Replace("<", "&lt;");
                retVal = retVal.Replace(">", "&gt;");
                retVal = retVal.Replace(" ", "&nbsp;");
                retVal = retVal.Replace("  ", "&nbsp;&nbsp;");
                retVal = retVal.Replace("\t", "&nbsp;&nbsp;");
                retVal = retVal.Replace("\r", "<br>");
                return retVal;
            }

            private static string FetchURL(string strMessage)
            {
                string strPattern = @"(?<url>(http|ftp|mms|rstp|news|https)://(?:[\w-]+\.)+[\w-]+(?:/[\w-./?%&~=]*[^.\s|,|\)|<|!])?)";
                string strReplace = "<a href=\"${url}\" target=_blank>${url}</a>";
                string strInput = strMessage;
                string strResult;
                strResult = Regex.Replace(strInput, strPattern, strReplace);
                strPattern = @"(?<!http://)(?<url>www\.(?:[\w-]+\.)+[\w-]+(?:/[\w-./?%&~=]*[^.\s|,|\)|<|!])?)";
                strReplace = "<a href=\"http://${url}\" target=_blank>${url}</a>";
                strResult = Regex.Replace(strResult, strPattern, strReplace);
                return strResult;
            } 

            public string ToUrl(string inputString)
            {
                string retVal = inputString;
                retVal = ConvertStr(retVal);
                retVal = FetchURL(retVal);
                return retVal;
            }
    ASP.NET获取服务器信息方法
     
    if (!IsPostBack)
                {
                    Label1.Text = "服务器名称:"+Server.MachineName;//服务器名称
                    Label2.Text = "服务器IP地址:" + Request.ServerVariables["LOCAL_ADDR"];//服务器IP地址
                    Label3.Text = "服务器域名:" + Request.ServerVariables["SERVER_NAME"];//服务器域名
                    Label4.Text = ".NET解释引擎版本:" + ".NET CLR" + Environment.Version.Major + "." + Environment.Version.Minor + "." + Environment.Version.Build + "." + Environment.Version.Revision;//.NET解释引擎版本
                    Label5.Text = "服务器操作系统版本:" + Environment.OSVersion.ToString();//服务器操作系统版本
                    Label6.Text = "服务器IIS版本:" + Request.ServerVariables["SERVER_SOFTWARE"];//服务器IIS版本
                    Label7.Text = "HTTP访问端口:" + Request.ServerVariables["SERVER_PORT"];//HTTP访问端口
                    Label8.Text = "虚拟目录的绝对路径:" + Request.ServerVariables["APPL_RHYSICAL_PATH"];//虚拟目录的绝对路径
                    Label9.Text = "执行文件的绝对路径:" + Request.ServerVariables["PATH_TRANSLATED"];//执行文件的绝对路径
                    Label10.Text = "虚拟目录Session总数:" + Session.Contents.Count.ToString();//虚拟目录Session总数
                    Label11.Text = "虚拟目录Application总数:" + Application.Contents.Count.ToString();//虚拟目录Application总数
                    Label12.Text = "域名主机:" + Request.ServerVariables["HTTP_HOST"];//域名主机
                    Label13.Text = "服务器区域语言:" + Request.ServerVariables["HTTP_ACCEPT_LANGUAGE"];//服务器区域语言
                    Label14.Text = "用户信息:" + Request.ServerVariables["HTTP_USER_AGENT"];
                    Label14.Text="CPU个数:"+Environment.GetEnvironmentVariable("NUMBER_OF_PROCESSORS");//CPU个数
                    Label15.Text = "CPU类型:" + Environment.GetEnvironmentVariable("PROCESSOR_IDENTIFIER");//CPU类型
                    Label16.Text = "进程开始时间:" + GetPrStart();//进程开始时间
                    Label17.Text = "AspNet 内存占用:" + GetAspNetN();//AspNet 内存占用
                    Label18.Text = "AspNet CPU时间:" + GetAspNetCpu();//AspNet CPU时间
                    Label19.Text = "FSO 文本文件读写:" + Check("Scripting.FileSystemObject");//FSO 文本文件读写
                    Label20.Text = "应用程序占用内存" + GetServerAppN();//应用程序占用内存
                }

    ASP.NET获取客户端信息

    客户端IP:Page.Request.UserHostAddress
    用户信息:Page.User;
    服务器电脑名称:Page.Server.MachineName
    当前用户电脑名称: System.Net.Dns.GetHostName()
    当前电脑名: System.Environment.MachineName
    当前电脑所属网域: System.Environment.UserDomainName
    当前电脑用户: System.Environment.UserName

    浏览器类型:Request.Browser.Browser
    浏览器标识:Request.Browser.Id
    浏览器版本号:Request.Browser.Version
    浏览器是不是测试版本:Request.Browser.Beta
    浏览器的分辨率(像素):Request["width"].ToString() + "*" + Request["height"].ToString();//1280/1024

    客户端的操作系统:Request.Browser.Platform
    是不是win16系统:Request.Browser.Win16
    是不是win32系统:Request.Browser.Win32


    //透过代理取IP
    string GetIp()
    {
    //可以透过代理服务器
    string userIP = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
    if (userIP == null || userIP == "")
    {
    //没有代理服务器,如果有代理服务器获取的是代理服务器的IP
    userIP = Request.ServerVariables["REMOTE_ADDR"];
    }
    return userIP;
    }
     C#实现页面加载

    protected void Page_Load(object sender, EventArgs e)
        {
            Loading();
        }


    public void Loading()
        {
            HttpContext hc = HttpContext.Current;
            //创建一个页面居中的div
            hc.Response.Write("<div id='loading'style='position: absolute; height: 100px; text-align: center;z-index: 9999; left: 50%; top: 50%; margin-top: -50px; margin-left: -175px;'> ");
            hc.Response.Write("<br />页面正在加载中,请稍候<br /><br /> ");
            hc.Response.Write("<table border='0' cellpadding='0' cellspacing='0' style='background-image: url(images/Progress/plan-bg.gif);text-align: center; 300px;'> ");
            hc.Response.Write("<tr><td style='height: 20px; text-align: center'><marquee direction='right' scrollamount='30' width='290px'> <img height='10' src='images/Progress/plan-wait.gif' width='270' />");
            hc.Response.Write("</marquee></td></tr></table></div>");
            //hc.Response.Write("<script>mydiv.innerText = '';</script>");
            hc.Response.Write("<script type=text/javascript>");
            //最重要是这句了,重写文档的onreadystatechange事件,判断文档是否加载完毕
            hc.Response.Write("function document.onreadystatechange()");
            hc.Response.Write(@"{ try  
                                       {
                                        if (document.readyState == 'complete') 
                                        {
                                             delNode('loading');
                                            
                                        }
                                       }
                                     catch(e)
                                        {
                                            alert('页面加载失败');
                                        }
                                                            } 

                                function delNode(nodeId)
                                {   
                                    try
                                    {   
                                          var div =document.getElementById(nodeId); 
                                          if(div !==null)
                                          {
                                              div.parentNode.removeChild(div);   
                                              div=null;    
                                              CollectGarbage(); 
                                          } 
                                    }
                                    catch(e)
                                    {   
                                       alert('删除ID为'+nodeId+'的节点出现异常');
                                    }   
                                }

                                ");

            hc.Response.Write("</script>");
            hc.Response.Flush();
        }
     Http请求图片显示:

    public Image byteArrayToImage()    
    {        
    WebRequest myWebRequest = WebRequest.Create("图片地址");        
    using (WebResponse myWebResponse = myWebRequest.GetResponse())        
    {            using (Stream ReceiveStream = myWebResponse.GetResponseStream())            {                byte[] byteArrayIn = new byte[ReceiveStream.Length];                
    using (MemoryStream ms = new MemoryStream(byteArrayIn))                
    {       
    Image.FromStream(ms);                
    }            
    }        
    }
    }
    通过文件流判断文件编码:

    public static System.Text.Encoding GetFileEncode(Stream stream)
            {
                BinaryReader br = new BinaryReader(stream, Encoding.Default);
                byte[] bb = br.ReadBytes(3);
                br.Close();

                //通过头的前三位判断文件的编码
                if (bb[0] >= 0xFF)
                {
                    if (bb[0] == 0xEF && bb[1] == 0xBB && bb[2] == 0xBF)
                    {
                        return Encoding.UTF8;
                    }
                    else if (bb[0] == 0xFE && bb[1] == 0xFF)
                    {
                        return Encoding.BigEndianUnicode;
                    }
                    else if (bb[0] == 0xFF && bb[1] == 0xFE)
                    {
                        return Encoding.Unicode;
                    }
                    else
                    {
                        return Encoding.Default;
                    }
                }
                else
                {
                    return Encoding.Default;
                }
            }
     


        文章作者:高维鹏(Brian)
        文章出处:http://www.cnblogs.com/gaoweipeng 
        欢迎转载,转载时请注明出处。谢谢合作。
  • 相关阅读:
    21.Merge Two Sorted Lists 、23. Merge k Sorted Lists
    34. Find First and Last Position of Element in Sorted Array
    leetcode 20. Valid Parentheses 、32. Longest Valid Parentheses 、301. Remove Invalid Parentheses
    31. Next Permutation
    17. Letter Combinations of a Phone Number
    android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )及屏幕适配注意事项
    oc 异常处理
    oc 类型判断
    oc Delegate
    oc 协议
  • 原文地址:https://www.cnblogs.com/top5/p/1718943.html
Copyright © 2020-2023  润新知