//读取文件
List<PATH> list = new List<PATH>();
DirectoryInfo root = new DirectoryInfo(path);
FileInfo[] files = root.GetFiles();
for (int n = 0; n < files.Count(); n++)
{
PATH pa = new PATH();
string temppath = files[n].FullName;//该文件的路径
pa.path = temppath;
list.Add(pa);
}
//读取文件内容
public List<SIPINFO> ReadTxtContent(string Path)
{
StreamReader sr = new StreamReader(Path, Encoding.Default);
string content;
string temp = "";
while ((content = sr.ReadLine()) != null)
{
temp += content.ToString();
}
string[] sipinfo = temp.Split(new string[] { "</SIP>" }, StringSplitOptions.RemoveEmptyEntries);
List<SIPINFO> list = new List<SIPINFO>();
for (int i = 0; i < sipinfo.Count(); i++)
{
SIPINFO si = new SIPINFO();
sipinfo[i] += "</SIP>";
si.SipInfo = sipinfo[i];
string callid = GetValue(sipinfo[i], "Call-ID:", "CSeq");
si.CallID = callid.Trim();
string from = GetValue(sipinfo[i], "From:", "To");
si.From = from.Trim();
string to = GetValue(sipinfo[i], "To:", "Call-ID");
si.To = to.Trim();
string time = sipinfo[i].Substring(0, 24);
si.Time = time.Trim();
string head = GetValue(sipinfo[i], "<SIP>", "Via");
si.Head = head.Trim();
//string headline = GetValue(sipinfo[i], "", "<SIP>");
//si.HeadLine = headline.Trim();
list.Add(si);
}
return list;
}
//正则表达式截取两个字符串中间的字符串
public static string GetValue(string str, string s, string e)
{
Regex rg = new Regex("(?<=(" + s + "))[.\s\S]*?(?=(" + e + "))", RegexOptions.Multiline | RegexOptions.Singleline);
return rg.Match(str).Value;
}