我正在尝试以编程方式在C#中创建.vcf文件,并在该文件中以正确的格式编写一堆字符串。但是当我尝试手动打开它时,会出现以下消息:
无法启动Microsoft Outlook。文件可能不存在,您可能没有权限打开它,或者它可能在另一个程序中打开。
但是当我手动创建一个文本文件时,用vcard格式编写同一串字符串并将扩展名更改为.vcf,然后打开文件,它会以outlook正确打开
任何帮助!!!
答案 0 :(得分:1)
你没有这么明确地说,所以我不得不问:你有没有提到Outlook给你的所有建议?您的程序锁定时该文件目前仍处于打开状态?文件权限是否可以被outlook用户读取?该文件确实存在?
答案 1 :(得分:1)
此回复可能对某人有所帮助。我遇到了类似的错误,对我来说问题是vcf文件中没有数据。一旦我在标题后打印了VCARD信息(然后打开了生成的vcf文件),错误就消失了。
答案 2 :(得分:0)
验证您在代码中使用CrLf作为行终止符。如果您使用Environment.NewLine或只是\ n,那可能是问题。
答案 3 :(得分:0)
您可能将文件保存为UTF-8或Unicode。要进行测试,请在VS中以二进制文件打开文件,删除前三个字节并查看文件是否打开。
答案 4 :(得分:0)
从vCard字符串构造.vcf文件时遇到了类似的问题。在Outlook中打开时,联系表单将完全空白。我通过将字符串转换为UTF8编码字节数组解决了这个问题。
byte[] vCard = System.Text.UTF8Encoding.UTF8.GetBytes(vCardString);