c#一些常用方法

/// <summary>
/// 指定Url地址使用Get 方式獲取全部字符串
/// </summary>
/// <param name="url">請求鏈接地址</param>
/// <returns></returns>
public string Get(string url)
{
	string result = "";
	HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
	HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
	Stream stream = resp.GetResponseStream();
	try
	{
		//獲取內容
		using (StreamReader reader = new StreamReader(stream))
		{
			result = reader.ReadToEnd();
		}
	}
	finally
	{
		stream.Close();
	}
	return result;
}


/// <summary>
/// 檢測文件是否佔用
/// </summary>
/// <param name="fileName"></param>
/// <returns></returns>
public static bool IsFileInUse(string fileName)
{
	bool inUse = true;

	FileStream fs = null;
	try
	{
		fs = new FileStream(fileName, FileMode.Open, FileAccess.Read,FileShare.None);
		inUse = false;
	}
	finally
	{
		if (fs != null){
			fs.Close();
		}  
	}
	return inUse;//true表示正在使用,false沒有使用
}

/// <summary>
/// 獲取文件夾所有信息
/// 使用前要在外部聲明變量directorysList和ArrayList爲ArrayList類型
/// </summary>
/// <param name="sourcePath"></param>
public static void GetDirectory(string sourcePath,)
{
	if (Directory.Exists(sourcePath))//判斷源文件夾是否存在
	{
		string[] tmp = Directory.GetFileSystemEntries(sourcePath);//獲取源文件夾中的目錄及文件路徑,存入字符串
		//循環遍歷
		for (int i = 0; i < tmp.Length; i++)
		{
			if (File.Exists(tmp[i]))//如果是文件則存入FileList
			{
				FileList.Add(tmp[i]);
			}
			else
			{
				if ((Directory.GetDirectories(tmp[i])).Length == 0)//如果是最後一層目錄則把其路徑存入DirectorysList
				{
					DirectorysList.Add(tmp[i]);
				}
			}
			GetDirectory(tmp[i]);
		}
	}
}

/// <summary>
/// 將對象文本轉換成utf8編碼
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public string UTF8ToGB2312(string str)
{
	try
	{
		Encoding utf8 = Encoding.GetEncoding(65001);
		Encoding gb2312 = Encoding.GetEncoding("gb2312");//Encoding.Default ,936
		byte[] temp = utf8.GetBytes(str);
		byte[] temp1 = Encoding.Convert(utf8, gb2312, temp);
		string result = gb2312.GetString(temp1);
		return result;
	}
	catch (Exception ex)//(UnsupportedEncodingException ex)
	{
		return null;
	}
}


/// <summary>
/// 獲取運行目錄
/// </summary>
/// <returns></returns>
public static string GetRundir()
{
	return AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
}

/// <summary>
/// 指定Post地址使用Get 方式獲取全部字符串
/// </summary>
/// <param name="url">請求後臺地址</param>
/// <returns></returns>
public static string Post(string url, Dictionary<string, string> dic)
{
	string result = "";
	try
	{
		HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
		req.Method = "POST";
		req.ContentType = "application/x-www-form-urlencoded";
		#region 添加Post 參數
		StringBuilder builder = new StringBuilder();
		int i = 0;
		foreach (var item in dic)
		{
			if (i > 0)
				builder.Append("&");
			builder.AppendFormat("{0}={1}", item.Key, item.Value);
			i++;
		}
		byte[] data = Encoding.UTF8.GetBytes(builder.ToString());
		req.ContentLength = data.Length;
		using (Stream reqStream = req.GetRequestStream())
		{
			reqStream.Write(data, 0, data.Length);
			reqStream.Close();
		}
		#endregion
		HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
		Stream stream = resp.GetResponseStream();
		//獲取響應內容
		using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
		{
			result = reader.ReadToEnd();
		}
	}
	catch (Exception e)
	{
		Console.WriteLine("POST失敗:" + e.Message);
	}
	return result;
}

/// <summary>
/// 指定Url地址使用Get 方式獲取全部字符串
/// </summary>
/// <param name="url">請求鏈接地址</param>
/// <returns></returns>
public static string Get(string url)
{
	string result = "";
	try
	{
		HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
		HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
		Stream stream = resp.GetResponseStream();
		try
		{
			//獲取內容
			using (StreamReader reader = new StreamReader(stream))
			{
				result = reader.ReadToEnd();
			}
		}
		finally
		{
			stream.Close();
		}
	}
	catch (Exception e)
	{
		Console.WriteLine("GET失敗:" + e.Message);
	}
	return result;
}

/// <summary>
/// base64解碼
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string Base64Decode(string str)
{
	return Encoding.Default.GetString(Convert.FromBase64String(str));
}

/// <summary>
/// base64編碼
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string Base64Encode(string str)
{
	return Convert.ToBase64String(Encoding.Default.GetBytes(str));
}

/// <summary>
/// Stream轉Bytes
/// </summary>
/// <param name="stream"></param>
/// <returns></returns>
public static byte[] StreamToBytes(Stream stream)
{
	byte[] bytes = new byte[stream.Length];
	stream.Read(bytes, 0, bytes.Length);
	// 設置當前流的位置爲流的開始
	stream.Seek(0, SeekOrigin.Begin);
	return bytes;
}

/// <summary>
/// 判斷是否中文
/// </summary>
/// <param name="CString"></param>
/// <returns></returns>
public static bool IsChina(string CString)
{
	bool BoolValue = false;
	for (int i = 0; i < CString.Length; i++)
	{
		if (Convert.ToInt32(Convert.ToChar(CString.Substring(i, 1))) < Convert.ToInt32(Convert.ToChar(128)))
		{
			BoolValue = false;
		}
		else
		{
			return BoolValue = true;
		}
	}
	return BoolValue;
}

/// <summary>
/// 獲取系統版本
/// </summary>
/// <returns></returns>
public static string get_OSVersion()
{
	string buffer = "";
	ManagementObjectSearcher searcher;
	searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT PartComponent FROM Win32_SystemOperatingSystem");

	foreach (ManagementObject queryObj in searcher.Get())
	{
		buffer = queryObj["PartComponent"].ToString();
		//會返回"\\\\CCC\\root\\cimv2:Win32_OperatingSystem.Name=\"Microsoft Windows Server 2003 Enterprise Edition|D:\\\\WINDOWS|\\\\Device\\\\Harddisk0\\\\Partition2\""
	}
	searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT Caption FROM Win32_OperatingSystem");

	foreach (ManagementObject queryObj in searcher.Get())
	{
		buffer = queryObj["Caption"].ToString();
		//會返回"Microsoft(R) Windows(R) Server 2003, Enterprise Edition"
	}
	if (buffer == "")
	{
		buffer = "error";
	}
	return buffer;
}

/// <summary>
/// 獲取外網IP
/// </summary>
/// <returns></returns>
public static string getExternalIp()
{
	try
	{
		WebClient client = new WebClient();
		client.Encoding = System.Text.Encoding.Default;
		//string response = client.DownloadString("http://1212.ip138.com/ic.asp");//失效了
		//string response = client.DownloadString("http://icanhazip.com/");//可用,可能不穩定
		string response = client.DownloadString("http://ip.chinaz.com/");//站長之家
		string myReg = @"<dd class=""fz24"">([\s\S]+?)<\/dd>";
		Match mc = Regex.Match(response, myReg, RegexOptions.Singleline);
		if (mc.Success && mc.Groups.Count > 1)
		{
			response = mc.Groups[1].Value;
			return response;
		}
		else
		{
			return "Can't get you Ip address!";
		}
	}
	catch (Exception)
	{
		return "Can't get you Ip address!";
	}
}

/// <summary>
/// 轉成時間
/// </summary>
/// <param name="time"></param>
/// <returns></returns>
public static string toTime(string time)
{
	long unixTimeStamp = long.Parse(time);
	DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); // 當地時區
	DateTime dt = startTime.AddSeconds(unixTimeStamp);
	return dt.ToString("yyyy/MM/dd HH:mm:ss");
}

/// <summary>
/// 檢測文件佔用
/// </summary>
/// <param name="fileName"></param>
/// <returns></returns>
public static bool IsFileInUse(string fileName)
{
	bool inUse = true;
	FileStream fs = null;
	try
	{
		fs = new FileStream(fileName, FileMode.Open, FileAccess.Read,FileShare.None);
		inUse = false;
	}finally{
		if (fs != null)

			fs.Close();
	}
	return inUse;//true表示正在使用,false沒有使用
}


// <summary>
/// 計算文件大小函數(保留兩位小數),Size爲字節大小
/// </summary>
/// <param name="size">初始文件大小</param>
/// <returns></returns>
public static string GetFileSize(long size)
{
	var num = 1024.00; //byte
	if (size < num)
	{
		return size + "B";
	} 
	if (size < Math.Pow(num, 2))
	{
		return (size / num).ToString("f2") + "K"; //kb
	}
	if (size < Math.Pow(num, 3))
	{
		return (size / Math.Pow(num, 2)).ToString("f2") + "M"; //M
	}    
	if (size < Math.Pow(num, 4))
	{
		return (size / Math.Pow(num, 3)).ToString("f2") + "G"; //G
	}
	return (size / Math.Pow(num, 4)).ToString("f2") + "T"; //T
}

/// <summary>
/// 獲取時間戳
/// </summary>
/// <returns></returns>
public static string GetTimeStamp()
{
	TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
	return Convert.ToInt64(ts.TotalMilliseconds).ToString();
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章