/// <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();
}