IT虾米网

android之将 .db 转换为 .vcf

bjzhanghao 2024年01月12日 编程语言 87 0

我不小心删除了我的联系人,我没有备份,现在我得到了 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 文件,我懒得理会。


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!