using System;
using System.Collections.Generic;
using System.Text;
using System.Collections; //使用Arraylist
using System.Security.Cryptography;//加密解密
using System.IO; //文件操作
using System.Management; //获取硬件信息
using System.Net; //获取IP地址是用到
using System.Text.RegularExpressions; //正则
using System.Data;
using System.Data.SqlClient;
namespace 函数库
{
//类型转换
public class GF_Convert
{
///
/// 字符串 转换 char数组
///
///
///
///
public static char[] string2chararray(string in_str, int in_len)
{
char[] ch = new char[in_len];
in_str.ToCharArray().CopyTo(ch, 0);
return ch;
}
///
/// 字符串 转换 byte数组 注意转换出来会使原来的bytearray长度变短
///
///
///
public static byte[] string2bytearray(string in_str)
{
return System.Text.Encoding.Default.GetBytes(in_str);
}
///
/// 字符串 转换 byte数组 长度为传如的长度
///
/// 传入字符串
/// 目标字节数组长度
///
public static byte[] string2bytearray(string in_str, int iLen)
{
byte[] bytes = new byte[iLen];
byte[] bsources = System.Text.Encoding.Default.GetBytes(in_str);
Array.Copy(bsources, bytes, bsources.Length);
return bytes;
}
///
/// 将字符串编码为Base64字符串
///
///
///
public static string Base64Encode(string str)
{
byte[] barray;
barray = Encoding.Default.GetBytes(str);
return Convert.ToBase64String(barray);
}
///
/// 将Base64字符串解码为普通字符串
///
///
///
public static string Base64Decode(string str)
{
byte[] barray;
try
{
barray = Convert.FromBase64String(str);
return Encoding.Default.GetString(barray);
}
catch
{
return str;
}
}
///
/// 图片 转换 byte数组
///
///
///
///
public static byte[] image_Image2Byte(Image pic, System.Drawing.Imaging.ImageFormat fmt)
{
MemoryStream mem = new MemoryStream();
pic.Save(mem, fmt);
mem.Flush();
return mem.ToArray();
}
///
/// byte数组 转换 图片
///
///
///
public static Image image_Byte2Image(byte[] bytes)
{
MemoryStream mem = new MemoryStream(bytes, true);
mem.Read(bytes, 0, bytes.Length);
mem.Flush();
Image aa = Image.FromStream(mem);
return aa;
}
///
/// ip 转换 长整形
///
///
///
public static long IP2Long(string strIP)
{
long[] ip = new long[4];
string[] s = strIP.Split('.');
ip[0] = long.Parse(s[0]);
ip[1] = long.Parse(s[1]);
ip[2] = long.Parse(s[2]);
ip[3] = long.Parse(s[3]);
return (ip[0] << 24) + (ip[1] << 16) + (ip[2] << 8) + ip[3];
}
///
/// 长整形 转换 IP
///
///
///
public static string Long2IP(long longIP)
{
StringBuilder sb = new StringBuilder("");
sb.Append(longIP >> 24);
sb.Append(".");
//将高8位置0,然后右移16为
sb.Append((longIP & 0x00FFFFFF) >> 16);
sb.Append(".");
sb.Append((longIP & 0x0000FFFF) >> 8);
sb.Append(".");
sb.Append((longIP & 0x000000FF));
return sb.ToString();
}
///
/// 将8位日期型整型数据转换为日期字符串数据
///
/// 整型日期
/// 是否以中文年月日输出
///
public static string FormatDate(int date, bool chnType)
{
string dateStr = date.ToString();
if (date <= 0 || dateStr.Length != 8)
return dateStr;
if (chnType)
return dateStr.Substring(0, 4) + "年" + dateStr.Substring(4, 2) + "月" + dateStr.Substring(6) + "日";
return dateStr.Substring(0, 4) + "-" + dateStr.Substring(4, 2) + "-" + dateStr.Substring(6);
}
///
/// string型转换为bool型
///
/// 要转换的字符串
/// 缺省值
/// 转换后的bool类型结果
public static bool StrToBool(object expression, bool defValue)
{
if (expression != null)
return StrToBool(expression, defValue);
return defValue;
}
///
/// string型转换为bool型
///
/// 要转换的字符串
/// 缺省值
/// 转换后的bool类型结果
public static bool StrToBool(string expression, bool defValue)
{
if (expression != null)
{
if (string.Compare(expression, "true", true) == 0)
return true;
else if (string.Compare(expression, "false", true) == 0)
return false;
}
return defValue;
}
///
/// 将对象转换为Int32类型
///
/// 要转换的字符串
/// 缺省值
/// 转换后的int类型结果
public static int ObjectToInt(object expression)
{
return ObjectToInt(expression, 0);
}
///
/// 将对象转换为Int32类型
///
/// 要转换的字符串
/// 缺省值
/// 转换后的int类型结果
public static int ObjectToInt(object expression, int defValue)
{
if (expression != null)
return StrToInt(expression.ToString(), defValue);
return defValue;
}
///
/// 将对象转换为Int32类型,转换失败返回0
///
/// 要转换的字符串
/// 转换后的int类型结果
public static int StrToInt(string str)
{
return StrToInt(str, 0);
}
///
/// 将对象转换为Int32类型
///
/// 要转换的字符串
/// 缺省值
/// 转换后的int类型结果
public static int StrToInt(string str, int defValue)
{
if (string.IsNullOrEmpty(str) || str.Trim().Length >= 11 || !Regex.IsMatch(str.Trim(), @"^([-]|[0-9])[0-9]*(/./w*)?$"))
return defValue;
int rv;
if (Int32.TryParse(str, out rv))
return rv;
return Convert.ToInt32(StrToFloat(str, defValue));
}
///
/// string型转换为float型
///
/// 要转换的字符串
/// 缺省值
/// 转换后的int类型结果
public static float StrToFloat(object strValue, float defValue)
{
if ((strValue == null))
return defValue;
return StrToFloat(strValue.ToString(), defValue);
}
///
/// string型转换为float型
///
/// 要转换的字符串
/// 缺省值
/// 转换后的int类型结果
public static float ObjectToFloat(object strValue, float defValue)
{
if ((strValue == null))
return defValue;
return StrToFloat(strValue.ToString(), defValue);
}
///
/// string型转换为float型
///
/// 要转换的字符串
/// 缺省值
/// 转换后的int类型结果
public static float ObjectToFloat(object strValue)
{
return ObjectToFloat(strValue.ToString(), 0);
}
///
/// string型转换为float型
///
/// 要转换的字符串
/// 转换后的int类型结果
public static float StrToFloat(string strValue)
{
if ((strValue == null))
return 0;
return StrToFloat(strValue.ToString(), 0);
}
///
/// string型转换为float型
///
/// 要转换的字符串
/// 缺省值
/// 转换后的int类型结果
public static float StrToFloat(string strValue, float defValue)
{
if ((strValue == null) || (strValue.Length > 10))
return defValue;
float intValue = defValue;
if (strValue != null)
{
bool IsFloat = Regex.IsMatch(strValue, @"^([-]|[0-9])[0-9]*(/./w*)?$");
if (IsFloat)
float.TryParse(strValue, out intValue);
}
return intValue;
}
///
/// 将对象转换为日期时间类型
///
/// 要转换的字符串
/// 缺省值
/// 转换后的int类型结果
public static DateTime StrToDateTime(string str, DateTime defValue)
{
if (!string.IsNullOrEmpty(str))
{
DateTime dateTime;
if (DateTime.TryParse(str, out dateTime))
return dateTime;
}
return defValue;
}
///
/// 将对象转换为日期时间类型
///
/// 要转换的字符串
/// 转换后的int类型结果
public static DateTime StrToDateTime(string str)
{
return StrToDateTime(str, DateTime.Now);
}
///
/// 将对象转换为日期时间类型
///
/// 要转换的对象
/// 转换后的int类型结果
public static DateTime ObjectToDateTime(object obj)
{
return StrToDateTime(obj.ToString());
}
///
/// 将对象转换为日期时间类型
///
/// 要转换的对象
/// 缺省值
/// 转换后的int类型结果
public static DateTime ObjectToDateTime(object obj, DateTime defValue)
{
return StrToDateTime(obj.ToString(), defValue);
}
///
/// 替换回车换行符为html换行符
///
public static string StrFormat(string str)
{
string str2;
if (str == null)
{
str2 = "";
}
else
{
str = str.Replace("/r/n", "
");
str = str.Replace("/n", "
");
str2 = str;
}
return str2;
}
///
/// 转换为简体中文
///
public static string ToSChinese(string str)
{
return Strings.StrConv(str, VbStrConv.SimplifiedChinese, 0);
}
///
/// 转换为繁体中文
///
public static string ToTChinese(string str)
{
return Strings.StrConv(str, VbStrConv.TraditionalChinese, 0);
}
///
/// 清除字符串数组中的重复项
///
/// 字符串数组
/// 字符串数组中单个元素的最大长度
///
public static string[] DistinctStringArray(string[] strArray, int maxElementLength)
{
Hashtable h = new Hashtable();
foreach (string s in strArray)
{
string k = s;
if (maxElementLength > 0 && k.Length > maxElementLength)
{
k = k.Substring(0, maxElementLength);
}
h[k.Trim()] = s;
}
string[] result = new string[h.Count];
h.Keys.CopyTo(result, 0);
return result;
}
///
/// 清除字符串数组中的重复项
///
/// 字符串数组
///
public static string[] DistinctStringArray(string[] strArray)
{
return DistinctStringArray(strArray, 0);
}
}
//加密解密
public class GF_Encrypt
{
///
/// DES加密
///
/// 加密字符串
/// 密钥
///
public static string string_Encrypt(string pToEncrypt, string sKey)
{
if (pToEncrypt == "") return "";
if (sKey.Length < 8) sKey = sKey + "xuE29xWp";
if (sKey.Length > 8) sKey = sKey.Substring(0, 8);
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
//把字符串放到byte数组中
//原来使用的UTF8编码,我改成Unicode编码了,不行
byte[] inputByteArray = Encoding.Default.GetBytes(pToEncrypt);
//建立加密对象的密钥和偏移量
//原文使用ASCIIEncoding.ASCII方法的GetBytes方法
//使得输入密码必须输入英文文本
des.Key = ASCIIEncoding.Default.GetBytes(sKey);
des.IV = ASCIIEncoding.Default.GetBytes(sKey);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
//Write the byte array into the crypto stream
//(It will end up in the memory stream)
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
//Get the data back from the memory stream, and into a string
StringBuilder ret = new StringBuilder();
foreach (byte b in ms.ToArray())
{
//Format as hex
ret.AppendFormat("{0:X2}", b);
}
ret.ToString();
return ret.ToString();
}
///
/// DES解密
///
/// 解密字符串
/// 解密密钥
/// 返回值
///
public static bool string_Decrypt(string pToDecrypt, string sKey, out string outstr)
{
if (pToDecrypt == "")
{
outstr = "";
return true;
};
if (sKey.Length < 8) sKey = sKey + "xuE29xWp";
if (sKey.Length > 8) sKey = sKey.Substring(0, 8);
try
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
//Put the input string into the byte array
byte[] inputByteArray = new byte[pToDecrypt.Length / 2];
for (int x = 0; x < pToDecrypt.Length / 2; x++)
{
int i = (Convert.ToInt32(pToDecrypt.Substring(x * 2, 2), 16));
inputByteArray[x] = (byte)i;
}
//建立加密对象的密钥和偏移量,此值重要,不能修改
des.Key = ASCIIEncoding.Default.GetBytes(sKey);
des.IV = ASCIIEncoding.Default.GetBytes(sKey);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
//Flush the data through the crypto stream into the memory stream
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
//Get the decrypted data back from the memory stream
//建立StringBuild对象,CreateDecrypt使用的是流对象,必须把解密后的文本变成流对象
StringBuilder ret = new StringBuilder();
outstr = System.Text.Encoding.Default.GetString(ms.ToArray());
return true;
}
catch
{
outstr = "";
return false;
}
}
///
/// 加密
///
public class AES
{
//默认密钥向量
private static byte[] Keys = { 0x41, 0x72, 0x65, 0x79, 0x6F, 0x75, 0x6D, 0x79, 0x53, 0x6E, 0x6F, 0x77, 0x6D, 0x61, 0x6E, 0x3F };
public static string Encode(string encryptString, string encryptKey)
{
encryptKey = GF_GET.GetSubString(encryptKey, 32, "");
encryptKey = encryptKey.PadRight(32, ' ');
RijndaelManaged rijndaelProvider = new RijndaelManaged();
rijndaelProvider.Key = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 32));
rijndaelProvider.IV = Keys;
ICryptoTransform rijndaelEncrypt = rijndaelProvider.CreateEncryptor();
byte[] inputData = Encoding.UTF8.GetBytes(encryptString);
byte[] encryptedData = rijndaelEncrypt.TransformFinalBlock(inputData, 0, inputData.Length);
return Convert.ToBase64String(encryptedData);
}
public static string Decode(string decryptString, string decryptKey)
{
try
{
decryptKey = GF_GET.GetSubString(decryptKey, 32, "");
decryptKey = decryptKey.PadRight(32, ' ');
RijndaelManaged rijndaelProvider = new RijndaelManaged();
rijndaelProvider.Key = Encoding.UTF8.GetBytes(decryptKey);
rijndaelProvider.IV = Keys;
ICryptoTransform rijndaelDecrypt = rijndaelProvider.CreateDecryptor();
byte[] inputData = Convert.FromBase64String(decryptString);
byte[] decryptedData = rijndaelDecrypt.TransformFinalBlock(inputData, 0, inputData.Length);
return Encoding.UTF8.GetString(decryptedData);
}
catch
{
return "";
}
}
}
///
/// 加密
///
public class DES
{
//默认密钥向量
private static byte[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
///
/// DES加密字符串
///
/// 待加密的字符串
/// 加密密钥,要求为8位
/// 加密成功返回加密后的字符串,失败返回源串
public static string Encode(string encryptString, string encryptKey)
{
encryptKey = GF_GET.GetSubString(encryptKey, 8, "");
encryptKey = encryptKey.PadRight(8, ' ');
byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8));
byte[] rgbIV = Keys;
byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Convert.ToBase64String(mStream.ToArray());
}
///
/// DES解密字符串
///
/// 待解密的字符串
/// 解密密钥,要求为8位,和加密密钥相同
/// 解密成功返回解密后的字符串,失败返源串
public static string Decode(string decryptString, string decryptKey)
{
try
{
decryptKey = GF_GET.GetSubString(decryptKey, 8, "");
decryptKey = decryptKey.PadRight(8, ' ');
byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey);
byte[] rgbIV = Keys;
byte[] inputByteArray = Convert.FromBase64String(decryptString);
DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Encoding.UTF8.GetString(mStream.ToArray());
}
catch
{
return "";
}
}
}
///
/// MD5函数
///
/// 原始字符串
/// MD5结果
public static string MD5(string str)
{
byte[] b = Encoding.UTF8.GetBytes(str);
b = new MD5CryptoServiceProvider().ComputeHash(b);
string ret = "";
for (int i = 0; i < b.Length; i++)
ret += b[i].ToString("x").PadLeft(2, '0');
return ret;
}
///
/// SHA256函数
///
/// /// 原始字符串
/// SHA256结果
public static string SHA256(string str)
{
byte[] SHA256Data = Encoding.UTF8.GetBytes(str);
SHA256Managed Sha256 = new SHA256Managed();
byte[] Result = Sha256.ComputeHash(SHA256Data);
return Convert.ToBase64String(Result); //返回长度为44字节的字符串
}
///
/// 返回 HTML 字符串的编码结果
///
/// 字符串
/// 编码结果
public static string HtmlEncode(string str)
{
return HttpUtility.HtmlEncode(str);
}
///
/// 返回 HTML 字符串的解码结果
///
/// 字符串
/// 解码结果
public static string HtmlDecode(string str)
{
return HttpUtility.HtmlDecode(str);
}
///
/// 返回 URL 字符串的编码结果
///
/// 字符串
/// 编码结果
public static string UrlEncode(string str)
{
return HttpUtility.UrlEncode(str);
}
///
/// 返回 URL 字符串的编码结果
///
/// 字符串
/// 解码结果
public static string UrlDecode(string str)
{
return HttpUtility.UrlDecode(str);
}
}
//硬件信息
public class GF_Hardware
{
///
/// cpu序列号
///
///
public static string getID_CpuId()
{
string cpuInfo = "";//cpu序列号
ManagementClass cimobject = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = cimobject.GetInstances();
foreach (ManagementObject mo in moc)
{
cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
}
return cpuInfo;
}
///
/// 硬盘ID号
///
///
public static string getID_HardDiskId()
{
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;
}
///
/// 获取网卡MacAddress
///
///
public static string getID_NetCardId()
{
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;
}
}
//网络部分
public class GF_Network
{
/*
* C#完整的通信代码(点对点,点对多,同步,异步,UDP,TCP)
* http://topic.csdn.net/u/20080619/08/dcef3fe2-f95b-4918-8edb-36d48a3d0528_2.html
*
*/
///
/// 获取IP地址 返回第一个
///
///
public static string getIP_This()
{
IPHostEntry hostInfo = Dns.GetHostEntry(Dns.GetHostName());
IPAddress[] address = hostInfo.AddressList;
if (address.Length == 0)
return "";
else
return address[0].ToString();
}
///
/// ping IP地址 timeout 局域网用200,广域网用2000
///
/// IP地址
/// 超时 毫秒
///
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(1) });
if (reply.Status == IPStatus.Success)
return true;
else
return false;
}
///
/// 判读是否是IP地址
///
///
///
public static bool IsIPStr(string in_str)
{
if (in_str.Replace(".", "").Length != in_str.Length - 3)
return false;
try
{
IPAddress ip = IPAddress.Parse(in_str);
return true;
}
catch
{
return false;
}
}
}
//判断部分
public class GF_IsOk
{
///
/// 判读是否是IP地址
///
///
///
public static bool IsIPStr(string in_str)
{
IPAddress ip;
return IPAddress.TryParse(in_str, out ip);
}
///
/// 判断是否是数字
///
///
///
public static bool IsNumber(string strNumber)
{
Regex objNotNumberPattern = new Regex("[^0-9.-]");
Regex objTwoDotPattern = new Regex("[0-9]*[.][0-9]*[.][0-9]*");
Regex objTwoMinusPattern = new Regex("[0-9]*[-][0-9]*[-][0-9]*");
String strValidRealPattern = "^([-]|[.]|[-.]|[0-9])[0-9]*[.]*[0-9]+$";
String strValidIntegerPattern = "^([-]|[0-9])[0-9]*$";
Regex objNumberPattern = new Regex("(" + strValidRealPattern + ")|(" + strValidIntegerPattern + ")");
return !objNotNumberPattern.IsMatch(strNumber) &&
!objTwoDotPattern.IsMatch(strNumber) &&
!objTwoMinusPattern.IsMatch(strNumber) &&
objNumberPattern.IsMatch(strNumber);
}
///
/// 判断是否是日期字符串
///
///
///
public static bool IsDateStr_yyyymmdd(string in_str)
{
if (in_str == "") return true;
if (in_str.Length != 8) return false;
return IsDateStr(in_str);
}
///
/// 判断是否是日期字符串
///
///
///
public static bool IsDateStr(string in_str)
{
if (in_str == "") return true;
if (in_str.Length == 8)
in_str = in_str.Substring(0, 4) + "-" + in_str.Substring(4, 2) + "-" + in_str.Substring(6, 2);
DateTime dtDate;
bool bValid = true;
try
{
dtDate = DateTime.Parse(in_str);
}
catch (FormatException)
{
// 如果解析方法失败则表示不是日期性数据
bValid = false;
}
return bValid;
}
///
/// 判断字符串中是否包含汉字,有返回true 否则为false
///
///
///
public static bool IsExistHanZi(string str)
{
Regex reg = new Regex(@"[/u4e00-/u9fa5]");//正则表达式
if (reg.IsMatch(str))
{
return true;
}
else
{
return false;
}
}
///
/// 字段串是否为Null或为""(空)
///
///
///
public static bool IsStrNullOrEmpty(string str)
{
if (str == null || str.Trim() == string.Empty)
return true;
return false;
}
///
/// 返回文件是否存在
///
/// 文件名
/// 是否存在
public static bool IsFileExists(string filename)
{
return System.IO.File.Exists(filename);
}
///
/// 检测是否符合email格式
///
/// 要判断的email字符串
/// 判断结果
public static bool IsValidEmail(string strEmail)
{
return Regex.IsMatch(strEmail, @"^[/w/.]+([-]/w+)*@[A-Za-z0-9-_]+[/.][A-Za-z0-9-_]");
}
public static bool IsValidDoEmail(string strEmail)
{
return Regex.IsMatch(strEmail, @"^@((/[[0-9]{1,3}/.[0-9]{1,3}/.[0-9]{1,3}/.)|(([/w-]+/.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(/]?)$");
}
///
/// 检测是否是正确的Url
///
/// 要验证的Url
/// 判断结果
public static bool IsURL(string strUrl)
{
return Regex.IsMatch(strUrl, @"^(http|https)/://([a-zA-Z0-9/./-]+(/:[a-zA-Z0-9/.&%/$/-]+)*@)*((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])/.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)/.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)/.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|localhost|([a-zA-Z0-9/-]+/.)*[a-zA-Z0-9/-]+/.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{1,10}))(/:[0-9]+)*(/($|[a-zA-Z0-9/./,/?/'///+&%/$#/=~_/-]+))*$");
}
///
/// 判断是否为base64字符串
///
///
///
public static bool IsBase64String(string str)
{
//A-Z, a-z, 0-9, +, /, =
return Regex.IsMatch(str, @"[A-Za-z0-9/+///=]");
}
///
/// 检测是否有Sql危险字符
///
/// 要判断字符串
/// 判断结果
public static bool IsSafeSqlString(string str)
{
return !Regex.IsMatch(str, @"[-|;|,|//|/(|/)|/[|/]|/}|/{|%|@|/*|!|/']");
}
}
//文件操作
public class GF_File
{
///
/// 写日志文件
///
/// 年月 例 2011-04
/// 月日 例 04-22
/// 时间+ 内容
///
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)) //如果文件存在,则创建File.AppendText对象
{
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("hh:mm:ss") + " " + content);
sr.Close();
}
fs.Close();
}
return true;
}
catch { return false; }
}
///
/// 读取文本文件内容,每行存入arrayList 并返回arrayList对象
///
///
/// arrayList
public static ArrayList ReadFileRow(string sFileName)
{
string sLine = "";
ArrayList alTxt = null;
try
{
using (StreamReader sr = new StreamReader(sFileName))
{
alTxt = new ArrayList();
while (!sr.EndOfStream)
{
sLine = sr.ReadLine();
if (sLine != "")
{
alTxt.Add(sLine.Trim());
}
}
sr.Close();
}
}
catch
{
}
return alTxt;
}
///
/// 备份文件
///
/// 源文件名
/// 目标文件名
/// 当目标文件存在时是否覆盖
/// 操作是否成功
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 (Exception e)
{
throw e;
}
}
///
/// 备份文件,当目标文件存在时覆盖
///
/// 源文件名
/// 目标文件名
/// 操作是否成功
public static bool BackupFile(string sourceFileName, string destFileName)
{
return BackupFile(sourceFileName, destFileName, true);
}
///
/// 恢复文件
///
/// 备份文件名
/// 要恢复的文件名
/// 要恢复文件再次备份的名称,如果为null,则不再备份恢复文件
/// 操作是否成功
public static bool RestoreFile(string backupFileName, string targetFileName, string backupTargetFileName)
{
try
{
if (!System.IO.File.Exists(backupFileName))
throw new FileNotFoundException(backupFileName + "文件不存在!");
if (backupTargetFileName != null)
{
if (!System.IO.File.Exists(targetFileName))
throw new FileNotFoundException(targetFileName + "文件不存在!无法备份此文件!");
else
System.IO.File.Copy(targetFileName, backupTargetFileName, true);
}
System.IO.File.Delete(targetFileName);
System.IO.File.Copy(backupFileName, targetFileName);
}
catch (Exception e)
{
throw e;
}
return true;
}
public static bool RestoreFile(string backupFileName, string targetFileName)
{
return RestoreFile(backupFileName, targetFileName, null);
}
}
//其他部分
public class GF_Other
{
}
}