In this article I will explain with an example, how to create vCard (.VCF) file in Windows Forms (WinForms) Application using C# and VB.Net. 
 
 
Image Folder (Directory) Location
The Image file is located inside the Images Folder of Windows project.
![Create vCard in Windows Forms using C# and VB.Net]() 
 
 
Form Design
The Form consists of following controls:
PictureBox – For displaying image.
Label – For labelling and displaying vCard details.
Button – For creating vCard.
The Button has been assigned with a Click event handler.
![Create vCard in Windows Forms using C# and VB.Net]() 
 
 
Namespaces
You will need to import the following namespaces.
using System.IO;
using System.Text;
 
 
VB.Net
Imports System.IO
Imports System.Text
 
 
 
Creating vCard (.VCF) file using C# and VB.Net
When the Create VCF Button is clicked, first a StringBuilder class object is created. 
Then, the information for creating the vCard (.VCF) is read from their respective fields and appended to the StringBuilder class object using Append method.
After that, the image file is converted into BYTE Array using ReadAllBytes method of File class.
The BYTE Array is then converted to BASE64 string which is ultimately appended to the StringBuilder class object.
Finally, the StringBuilder class object is written to the Stream which initiates the saves the vCard in the specified location.
C#
private void OnCreate(object sender, EventArgs e)
{
    StringBuilder sb = new StringBuilder();
    sb.Append("BEGIN:VCARD\r\nVERSION:2.1");
    sb.Append(Environment.NewLine);
 
    sb.Append("N:");
    sb.Append(lblName.Text.Split(' ')[0]);
    sb.Append(";");
    sb.Append(lblName.Text.Split(' ')[1]);
    sb.Append(";");
    sb.Append(Environment.NewLine);
 
    sb.Append("FN:");
    sb.Append(lblName.Text);
    sb.Append(Environment.NewLine);
 
    sb.Append("TEL;CELL:");
    sb.Append(lblMobileNumber.Text);
    sb.Append(Environment.NewLine);
 
    sb.Append("TEL;HOME:");
    sb.Append(lblHomeNumber.Text);
    sb.Append(Environment.NewLine);
 
    sb.Append("TEL;WORK:");
    sb.Append(lblWorkNumber.Text);
    sb.Append(Environment.NewLine);
 
    sb.Append("EMAIL;WORK:");
    sb.Append(lblEmail.Text);
    sb.Append(Environment.NewLine);
 
    sb.Append("ORG:");
    sb.Append(lblOrganization.Text);
    sb.Append(Environment.NewLine);
 
    sb.Append("TITLE:");
    sb.Append(lblTitle.Text);
    sb.Append(Environment.NewLine);
 
    sb.Append("URL:");
    sb.Append(lblWebsite.Text);
    sb.Append(Environment.NewLine);
 
    byte[] bytes = File.ReadAllBytes(Application.StartupPath.Replace("\\b in\\Debug", "") + "\\Images\\Mudassar.png");
    string base64 = Convert.ToBase64String(bytes, 0, bytes.Length);
    sb.Append("PHOTO;ENCODING=BASE64;JPEG:");
    sb.Append(base64);
    sb.Append(Environment.NewLine);
 
    sb.Append("END:VCARD");
 
    StreamWriter sw = new StreamWriter("E:\\Files\\Mudassar.vcf");
    sw.Write(sb.ToString());
    sw.Close();
}
 
 
VB.Net
Private Sub OnCreate(sender As Object, e As EventArgs) Handles btnCreateVCF.Click
    Dim sb As StringBuilder = New StringBuilder()
    sb.Append("BEGIN:VCARD" & vbCrLf & "VERSION:2.1")
    sb.Append(Environment.NewLine)
 
    sb.Append("N:")
    sb.Append(lblName.Text.Split(" "c)(0))
    sb.Append(";")
    sb.Append(lblName.Text.Split(" "c)(1))
    sb.Append(";")
    sb.Append(Environment.NewLine)
 
    sb.Append("FN:")
    sb.Append(lblName.Text)
    sb.Append(Environment.NewLine)
 
    sb.Append("TEL;CELL:")
    sb.Append(lblMobileNumber.Text)
    sb.Append(Environment.NewLine)
 
    sb.Append("TEL;HOME:")
    sb.Append(lblHomeNumber.Text)
    sb.Append(Environment.NewLine)
 
    sb.Append("TEL;WORK:")
    sb.Append(lblWorkNumber.Text)
    sb.Append(Environment.NewLine)
 
    sb.Append("EMAIL;WORK:")
    sb.Append(lblEmail.Text)
    sb.Append(Environment.NewLine)
 
    sb.Append("ORG:")
    sb.Append(lblOrganization.Text)
    sb.Append(Environment.NewLine)
 
    sb.Append("TITLE:")
    sb.Append(lblTitle.Text)
    sb.Append(Environment.NewLine)
 
    sb.Append("URL:")
    sb.Append(lblWebsite.Text)
    sb.Append(Environment.NewLine)
 
    Dim bytes As Byte() = File.ReadAllBytes(Application.StartupPath.Replace("\bin\Debug", "") & "\Images\Mudassar.png")
    Dim base64 As String = Convert.ToBase64String(bytes, 0, bytes.Length)
    sb.Append("PHOTO;ENCODING=BASE64;JPEG:")
    sb.Append(base64)
    sb.Append(Environment.NewLine)
 
    sb.Append("END:VCARD")
 
    Dim sw As StreamWriter = New StreamWriter("E:\Files\Mudassar.vcf")
    sw.Write(sb.ToString())
    sw.Close()
End Sub
 
 
 
Screenshots
Form
![Create vCard in Windows Forms using C# and VB.Net]() 
 
Downloaded vCard (.VCF) file
![Create vCard in Windows Forms using C# and VB.Net]() 
 
 
Downloads