2010-03-30 80 views
1

我想以编程方式在C#中创建一个.vcf文件,并在该文件中以正确格式编写一串字符串。但是当我尝试手动打开它时,出现以下消息。
无法启动Microsoft Outlook。文件可能不存在,您可能没有权限打开它,或者它可能在另一个程序中打开。

但是,当我创建一个文本文件手动编写同捆串的vCard格式和扩展名更改为.VCF,然后打开该文件,它在Outlook中正常打开.vcf文件不能打开

任何帮助!

回答

1

你不这么明确地说,所以我不得不问:你有没有对Outlook提供的所有建议进行调整?该文件目前仍未打开,并且程序锁定了该文件?文件权限是否可以被outlook用户读取?该文件确实存在?

+0

+1最有可能你的程序没有关闭文件。 – ChrisBD 2010-03-30 13:25:55

0

验证您是否在代码中使用了CrLf作为行终止符。如果您使用Environment.NewLine或\ n's,那可能是问题所在。

0

您可能已将文件保存为UTF-8或Unicode。为了测试,在VS中以二进制打开文件,删除前三个字节并查看文件是否打开。

0

从vCard字符串构造一个.vcf文件时有一个非常类似的问题。在Outlook中打开时,联系表单将完全空白。我通过将字符串转换为UTF8编码字节数组解决了这个问题。

byte[] vCard = System.Text.UTF8Encoding.UTF8.GetBytes(vCardString); 
1

此回复可能有助于某人。我得到了类似的错误,对我来说问题是vcf文件中没有数据。只要我在标题后打印VCARD信息(然后打开生成的vcf文件),错误消失。

My error