我不小心删除了我的联系人,我没有备份,现在我得到了 contacts2.db,我正在尝试将 .db 转换为 .vcf。现在我正在使用 Ruby 来转换文件,这就是我所做的
gem install sqlite3
gem install vpim
path to contacts2-to-vcard.rb/contacts2-to-vcard.rb > contacts.vcf
我总是说“拒绝访问”。我将文件夹设置为完全控制,但每当我运行该命令时,它都会更改为只读,顺便说一句,我使用的是 Windows 8。有什么帮助吗?或者是否有替代方法将 .db 转换为 .vcf?时间差
请您参考如下方法:
将其从数据库中提取出来(这一切都在 Ruby 中):
require 'sqlite3'
path_to_contactsdb_file = "/SAMPLE/PATH/TO/contacts2.db"
db = SQLite3::Database.new path_to_contactsdb_file
raw_contacts = db.execute("select _id,display_name from raw_contacts")
contacts = {}
raw_contacts.each do |x|
contacts[x[1]] = {}
contacts[x[1]]['rcid'] = x[0]
contacts[x[1]]['nums'] = db.execute("select normalized_number from phone_lookup where raw_contact_id=" + x[0].to_s)
end
将其拉取为 CSV:
output_filepath = "/SAMPLE/EXAMPLE/FILEPATH"
csv = ""
contacts.each do |k,v|
csv += '"' + k + '",'
v['nums'].each do |num|
csv += '"' + num[0] + '",'
end
csv += "\n"
end
File.open(output_filepath,"w") {|file| file.write(csv) }
然后你可以使用 CSV 导入应用程序,通过 CSV 导入 Google 联系人等。你可以给我一个水果篮。
如果它必须是 VCF 格式,那么只需更改 CSV 的输出语法。查找示例 VCF 文件,我懒得理会。