C# 常用的工具类
编码解码、图片与byte[]、日志文件写入和读取
/// <summary>
/// 将字符串编码为Base64字符串
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string Base64Encode(string str)
{
byte[] barray;
barray = Encoding.Default.GetBytes(str);
return Convert.ToBase64String(barray);
} /// <summary>
/// 将Base64字符串解码为普通字符串
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string Base64Decode(string str)
{
byte[] barray; try
{
barray = Convert.FromBase64String(str);
return Encoding.Default.GetString(barray);
} catch
{
return str;
} }
编码解码
/// <summary>
/// 图片 转换 byte数组
/// </summary>
/// <param name="pic"></param>
/// <param name="fmt"></param>
/// <returns></returns>
public static byte[] image_Image2Byte(System.Drawing.Image pic, System.Drawing.Imaging.ImageFormat fmt)
{
MemoryStream mem = new MemoryStream();
pic.Save(mem, fmt);
mem.Flush();
return mem.ToArray();
} /// <summary>
/// byte数组 转换 图片
/// </summary>
/// <param name="bytes"></param>
/// <returns></returns>
public static System.Drawing.Image image_Byte2Image(byte[] bytes)
{
MemoryStream mem = new MemoryStream(bytes, true);
mem.Read(bytes, , bytes.Length);
mem.Flush();
System.Drawing.Image aa = System.Drawing.Image.FromStream(mem, true);
mem.Close(); return aa;
}
图片转化Byte
/// <summary>
/// ip 转换 长整型
/// </summary>
/// <param name="strIP"></param>
/// <returns></returns>
public static long IP2Long(string strIP)
{
long[] ip = new long[];
string[] s = strIP.Split('.');
ip[] = long.Parse(s[]);
ip[] = long.Parse(s[]);
ip[] = long.Parse(s[]);
ip[] = long.Parse(s[]); return (ip[] << ) + (ip[] << ) + (ip[] << ) + ip[];
} /// <summary>
/// 长整型 转换 IP
/// </summary>
/// <param name="longIP"></param>
/// <returns></returns>
public static string Long2IP(long longIP)
{
StringBuilder sb = new StringBuilder("");
sb.Append(longIP >> );
sb.Append("."); //将高8位置0,然后右移16为
sb.Append((longIP & 0x00FFFFFF) >> );
sb.Append("."); sb.Append((longIP & 0x0000FFFF) >> );
sb.Append("."); sb.Append((longIP & 0x000000FF)); return sb.ToString();
}
ip与长整型
/// <summary>
/// 获取CPU的序列号
/// </summary>
/// <returns></returns>
public static string GetCpuNum()
{ string cpuInfo = ""; ManagementClass cimobject = new ManagementClass("Win32_Processor"); ManagementObjectCollection moc = cimobject.GetInstances(); foreach (ManagementObject mo in moc) { cpuInfo = mo.Properties["ProcessorId"].Value.ToString(); } return cpuInfo; } /// <summary>
/// 获取硬盘ID号
/// </summary>
/// <returns></returns>
public static string GetHardDiskNum()
{ string HDid = ""; ManagementClass cimobject = new ManagementClass("Win32_DiskDrive"); ManagementObjectCollection moc = cimobject.GetInstances(); foreach (ManagementObject mo in moc) { HDid = (string)mo.Properties["Model"].Value; } return HDid; } /// <summary>
/// 获取网卡MacAddress
/// </summary>
/// <returns></returns>
public static string GetNetCardNum()
{ string NCid = ""; ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { if ((bool)mo["IPEnabled"] == true) NCid = mo["MacAddress"].ToString(); mo.Dispose(); } return NCid; } /// <summary>
/// 是否ping通
/// </summary>
/// <param name="ip"></param>
/// <param name="timeout">毫秒</param>
/// <returns></returns>
public static bool ping(string ip, int timeout)
{ IPAddress ipadd; if (!IPAddress.TryParse(ip, out ipadd)) { return false; } Ping pingSender = new Ping(); PingReply reply = pingSender.Send(ip, timeout, new Byte[] { Convert.ToByte() }); if (reply.Status == IPStatus.Success) return true; else return false; }
硬件信息(CPU、银盘、网卡)与ping
/// <summary>
/// 文件是否存在
/// </summary>
/// <param name="filename"></param>
/// <returns></returns>
public static bool IsFileExists(string filename)
{ return System.IO.File.Exists(filename); } /// <summary>
/// 写入日志文件[记录异常等重要信息]
/// </summary>
/// <param name="sPath"></param>
/// <param name="sFileName"></param>
/// <param name="content"></param>
/// <returns></returns>
public static bool WriteLog(string sPath, string sFileName, string content)
{ try { StreamWriter sr; if (!Directory.Exists(sPath)) { Directory.CreateDirectory(sPath); } string v_filename = sPath + "\\" + sFileName; if (!File.Exists(v_filename)) { sr = File.CreateText(v_filename); sr.Close(); } using (FileStream fs = new FileStream(v_filename, System.IO.FileMode.Append, System.IO.FileAccess.Write, System.IO.FileShare.Write)) { using (sr = new StreamWriter(fs)) { sr.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " " + content); sr.Close(); } fs.Close(); } return true; } catch { return false; } } /// <summary>
/// 读取日志文件
/// </summary>
/// <param name="sFileName"></param>
/// <returns></returns>
public static ArrayList ReadFileRow(string sFileName)
{ string sLine = ""; ArrayList list = null; try { using (StreamReader reader = new StreamReader(sFileName)) { list = new ArrayList(); while (!reader.EndOfStream) { sLine = reader.ReadLine(); if (sLine != "") { list.Add(sLine.Trim()); } } reader.Close(); } } catch { } return list; }
日志文件
/// <summary>
/// 备份文件
/// </summary>
/// <param name="sourceFileName">源文件名</param>
/// <param name="destFileName">目标文件名</param>
/// <param name="overwrite">当目标文件存在时是否覆盖</param>
/// <returns>操作是否成功</returns>
public static bool BackupFile(string sourceFileName, string destFileName, bool overwrite)
{ if (!System.IO.File.Exists(sourceFileName)) throw new FileNotFoundException(sourceFileName + "文件不存在!"); if (!overwrite && System.IO.File.Exists(destFileName)) return false; try { System.IO.File.Copy(sourceFileName, destFileName, true); return true; } catch (FileNotFoundException e) { throw e; } }
备份
/// <summary>
/// 字符串中是否包含汉字
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static bool IsExistHanZi(string str) { Regex reg = new Regex(@"[\u4e00-\u9fa5]"); return reg.IsMatch(str); } /// Email格式
/// </summary>
/// <param name="strEmail"></param>
/// <returns></returns>
public static bool IsValidEmail(string strEmail)
{ return Regex.IsMatch(strEmail, @"^[\w\.]+([-]\w+)*@[A-Za-z0-9-_]+[\.][A-Za-z0-9-_]"); } /// <summary>
/// 是否是安全的SQL语句
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static bool IsSafeSqlString(string str)
{ return !Regex.IsMatch(str, @"[-|;|,|\/|\(|\)|\[|\]|\}|\{|%|@|\*|!|\']"); }
格式验证
C# 常用的工具类的更多相关文章
- Android常用的工具类
主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java.目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils. Prefe ...
- Android常用的工具类(转)
主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java.目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils.Prefer ...
- 2013最新Android常用的工具类整理
主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java. 目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils. Pref ...
- Java语言Lang包下常用的工具类介绍_java - JAVA
文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 无论你在开发哪中 Java 应用程序,都免不了要写很多工具类/工具函数.你可知道,有很多现成的工具类可用,并且代码质量都 ...
- commons-collections包中的常用的工具类
commons-collections包中的常用的工具类 <dependency> <groupId>commons-collections</groupId> & ...
- Android开发之常用必备工具类图片bitmap转成字符串string与String字符串转换为bitmap图片格式
作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 QQ986945193 博客园主页:http://www.cnblogs.com/mcxiaobing ...
- Java,面试题,简历,Linux,大数据,常用开发工具类,API文档,电子书,各种思维导图资源,百度网盘资源,BBS论坛系统 ERP管理系统 OA办公自动化管理系统 车辆管理系统 各种后台管理系统
Java,面试题,简历,Linux,大数据,常用开发工具类,API文档,电子书,各种思维导图资源,百度网盘资源BBS论坛系统 ERP管理系统 OA办公自动化管理系统 车辆管理系统 家庭理财系统 各种后 ...
- Hutool中那些常用的工具类和方法
Hutool中那些常用的工具类和方法 Hutool是一个Java工具包,它帮助我们简化每一行代码,避免重复造轮子.如果你有需要用到某些工具方法的时候,不妨在Hutool里面找找,可能就有.本文将对Hu ...
- java中常用的工具类(三)
继续分享java中常用的一些工具类.前两篇的文章中有人评论使用Apache 的lang包和IO包,或者Google的Guava库.后续的我会加上的!谢谢支持IT江湖 一.连接数据库的综合类 ...
- java中常用的工具类(二)
下面继续分享java中常用的一些工具类,希望给大家带来帮助! 1.FtpUtil Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...
随机推荐
- ThinkPHP中的内置标签
ThinkPHP中的内置标签 1.内置标签分类 闭合标签 <tag></tag> 开放标签 <tag /> 2.包含文件标签 主要功能:实现对文件的包含(类似于re ...
- 了解GDAL的图像处理/Python
GDAL是一个操作各种栅格地理数据格式的库.包括读取.写入.转换.处理各种栅格数据格式(有些特定的格式对一些操作如写入等不支持).它使用了一个单一的抽象数据模型就支持了大多数的栅格数据(GIS对栅格, ...
- Linux 内存布局
本文主要简介在X86体系结构下和在ARM体系结构下,Linux内存布局的概况,力求简单明了,不过多深入概念,多以图示的方式来记忆理解,一图胜万言. Technorati 标签: 内存 布局 ...
- 实验三——SDRAM
一.运行环境 开发板:jz2440 系统: ubuntu12.04 编译器:arm-linux-gcc 二.特殊寄存器 sdram的操作无需按照时序图来设置,只要设置好相关的13个寄存器,arm处理 ...
- 杂项一之js,<select>标签
一.在aspx页面中实现 修改与删除页面的跳转 前台js部分: 在上部的js部分中写,根据传过来的id,来经行页面的跳转,并把id传过去 js部分就是实现了一个页面跳转的功能 (还有确认框confir ...
- UINavigationController 与 UITabBarController
http://www.cnblogs.com/YouXianMing/p/3756904.html // index start from 1. UITabBarItem *newsItem = [[ ...
- dedecms 分页样式
<div class="dede_pages"> <ul class="pagelist"> {dede:pagelist lis ...
- ASP.NET中各种连接数据库的配置
一.数据库连接语句 1.MSSQL数据库链接示例 <connectionStrings> <add name="Conn" connectionString=&q ...
- 自定义一个WPF的PathButton
一.背景 做项目时总是少不了Button,但是普通的Button大家都不喜欢用,总是想要自定义的Button,正好项目中用到不要边框的Button,并且是形状也是根据功能不同而变化的,并且窗口程序是会 ...
- 相同的 birthday
Description Sometimes some mathematical results are hard to believe. One of the common problems is t ...