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 ...
随机推荐
- js 设置 获取css样式
先看一段代码,为了体现一会下面说的js用style获取css样式的不同 一:给div设置margin-left(用style设置css样式没什么问题) box.style.marginLeft=&qu ...
- js密码的校验(判断字符类型、统计字符类型个数)
/** *判断字符类型 */ function CharMode(iN) { if (iN >= 48 && iN <= 57) //数字 return 1; if (iN ...
- OpenGL第8,9讲小结
这两节,透明度和物体的3D运动,主要集中在第9讲,因为第9讲也用到了通过Alpha值来调整透明度的地方. 因为要模拟星星,所以要创建的四边形需要很多,例子中创建了50个正方形.因为每个星星的属性都差不 ...
- 试写Python内建函数range()
还没查阅源码,先试着练手 class my_range(object): def __init__(self, *args): if not args: raise TypeError, 'range ...
- VmodCAM图像采集 VGA显示
先上图 总体框图 效果图 效果不是很好,因为暂时用的是zedboard自带的VGA,其只能RGB只有3*3*3的彩色度 VmodCAM原理图 VmodCAM的zedboard管脚约束见:http:// ...
- MATLAB light material lighting
clf;[X,Y,Z]=sphere(40);colormap(jet)subplot(1,2,1),surf(X,Y,Z),axis off square,shading interplight(' ...
- sail.js学习 - 一些问题
问题: 一.数据填充: 在开发环境中,难免要填充一些基础数据用于测试用.现有两种方法 1.在bootstrap.js或者其他启动文件中创建一些数据 2.https://github.com/frost ...
- 分享:PHP数组排序总结
本文内容:PHP二维数组排序,PHP数组排序总结. php数组排序是PHP学习中最基础也是最重要的一部分. 1.常规数组的排序 常规数组是指数组各元素均为字符串或数字,这与这样的数组,我们可以采用so ...
- php中echo、print、print_r、printf的返回值
1.echo 无返回值,是一个语言结构.在输出多个参数时不可以使用小括号; 2.print返回值为1:如:$x = 0; echo print $x."<br/>";/ ...
- TDirectory.CreateDirectory 完整、严谨的创建一个目录
描述:创建一个目录,不包含多级目录(多级目录使用System.SysUtils.ForceDirectories,Vcl.FileCtrl.ForceDirectories已过时) procedure ...