解析電子名片(VCF)我設法用LumiSoft創建vCard,然後得到它從它的字符串值
LumiSoft.Net.Mime.vCard.vCard card = new vCard();
Stream stream = new MemoryStream();
card.ToStream(stream);
stream.Position = 0;
StreamReader reader = new StreamReader(stream);
return reader.ReadToEnd();
下面的字符串值的The返回的字符串的一個例子:
BEGIN:VCARD VERSION:3.0 UID:f1a6090d-ee73-4368-8fe6-26302fb3e97a N: LastName; FirstName ;;; TEL; CELL:0099912123456 EMAIL:[email protected] END:VCARD
這是multiplaforms標準字符串格式(移動和桌面),以共享聯繫人信息,我無法真正改變我發送的格式/接收vCard字符串的信息。 發送成功(在手機上,它成功解析這個字符串作爲一個vcf卡),問題是解析在桌面上接收的字符串(這是發送的字符串完全一樣)...
我試過正在將接收到的字符串寫入流然後解析它:
LumiSoft.Net.Mime.vCard.vCard card = new vCard();
MemoryStream stream = new MemoryStream();
StreamWriter writer = new StreamWriter(stream);
writer.Write(cardString);
writer.Flush();
stream.Position = 0;
card.Parse(stream);
哪個失敗。然後看看發生了什麼,我試着寫我到一個地方VCF文件,並打開它的字符串,
File.WriteAllText(@"C:\Users\user\Desktop\test.vcf", cardString);
和失敗過,即使我交叉檢查的2串(發送和接收),他們是100%相同。 (可能會丟失標題?)
有關如何解析此字符串(如上所述)以檢索其信息(名稱,電子郵件,照片...)的幫助?我注意到一些SO帖子使用正則表達式來實現,但我希望能夠使用庫,而不必使用LumiSoft。提前致謝。
正確格式化字符串。另外還有一個隱藏的字符從我們的服務器發送到字符串的開頭,從而阻止瞭解析。我修剪完畢後,全部解決了。 Thought.vCards看起來不錯,謝謝你的建議 – Reyno