micro-SDからAndroid以外のNokia電話に連絡先をインポートしようとしています。そこで、エクスポートしたファイルを修正してインポートできることを望み、まず現在の連絡先をマイクロSDカードにエクスポートしました。
エクスポートされたファイル形式はNokiaバックアップファイルです.NBF
。実際には一般的なファイルのようですzip
。
エクスポートした.NBF
ファイルを解凍して変更できます(連絡先が保存されている場所.vcf - vcard
)。
ただし、圧縮してインポートしようとすると、ファイルが破損しているというメッセージが携帯電話に表示されます。
以下を使用してzipファイルを確認しましたzipinfo
。
変更されていないファイル:
$ zipinfo Backup001.NBF
Archive: Backup001.NBF
Zip file size: 3031 bytes, number of entries: 10
-rw-a-- 0.0 fat 1160 b- stor 20-Mar-30 11:31 predefhiddenfolder/predefisasettings/usersettings/user_settings.wbxml
dr-x-hs 0.0 fat 0 b- stor 10-Jan-01 00:00 predefhiddenfolder/predefisasettings/usersettings
dr-xahs 0.0 fat 0 b- stor 07-Jan-01 00:00 predefhiddenfolder/predefisasettings
dr-xahs 0.0 fat 0 b- stor 07-Jan-01 00:00 predefhiddenfolder
-rw-a-- 0.0 fat 214 b- defN 20-Mar-30 11:31 predefhiddenfolder/backup/WIP/F01
drwxa-- 0.0 fat 0 b- defN 20-Mar-30 11:31 predefhiddenfolder/backup/WIP
drwxa-- 0.0 fat 0 b- defN 10-Jan-01 00:00 predefhiddenfolder/backup
-rw-a-- 0.0 fat 256 b- defN 20-Mar-30 11:31 predefhiddenfolder/backup/WIP/32/contacts/1.vcf
drwxa-- 0.0 fat 0 b- defN 20-Mar-30 11:31 predefhiddenfolder/backup/WIP/32/contacts
drwxa-- 0.0 fat 0 b- defN 20-Mar-30 11:31 predefhiddenfolder/backup/WIP/32
10 files, 1630 bytes uncompressed, 1409 bytes compressed: 13.6%
その後、次のように修正し1.vcf
て更新しましたBackup001.NBF
。
zip Backup001.NBF -f -r predefhiddenfolder/backup/WIP/32/contacts/1.vcf
修正済み:
$ zipinfo Backup001.NBF
Archive: Backup001.NBF
Zip file size: 2958 bytes, number of entries: 10
-rw-a-- 0.0 fat 1160 b- stor 20-Mar-30 11:31 predefhiddenfolder/predefisasettings/usersettings/user_settings.wbxml
dr-x-hs 0.0 fat 0 b- stor 10-Jan-01 00:00 predefhiddenfolder/predefisasettings/usersettings
dr-xahs 0.0 fat 0 b- stor 07-Jan-01 00:00 predefhiddenfolder/predefisasettings
dr-xahs 0.0 fat 0 b- stor 07-Jan-01 00:00 predefhiddenfolder
-rw-a-- 0.0 fat 214 b- defN 20-Mar-30 11:31 predefhiddenfolder/backup/WIP/F01
drwxa-- 0.0 fat 0 b- defN 20-Mar-30 11:31 predefhiddenfolder/backup/WIP
drwxa-- 0.0 fat 0 b- defN 10-Jan-01 00:00 predefhiddenfolder/backup
-rw-r--r-- 3.0 unx 208 tx defN 20-Apr-03 01:04 predefhiddenfolder/backup/WIP/32/contacts/1.vcf
drwxa-- 0.0 fat 0 b- defN 20-Mar-30 11:31 predefhiddenfolder/backup/WIP/32/contacts
drwxa-- 0.0 fat 0 b- defN 20-Mar-30 11:31 predefhiddenfolder/backup/WIP/32
10 files, 1582 bytes uncompressed, 1366 bytes compressed: 13.7%
この行には
-rw-r--r-- 3.0 unx 208 tx defN 20-Apr-03 01:04 predefhiddenfolder/backup/WIP/32/contacts/1.vcf
形式が3.0 unx
。
形式に圧縮する方法はありますか0.0 fat
?
編集:いくつかの指示を追加しました。
-k
編集:@FennecTECHが提案したフラグを試してみました。
良く見えますが、まだ動作しません。
$ zipinfo Backup000.NBF
Archive: Backup000.NBF
Zip file size: 2501 bytes, number of entries: 10
drwx--- 2.0 fat 0 bx stor 20-Apr-03 00:37 PREDEFHI/
drwx--- 2.0 fat 0 bx stor 20-Apr-03 00:36 PREDEFHI/PREDEFIS/
drwx--- 2.0 fat 0 bx stor 20-Apr-03 00:36 PREDEFHI/PREDEFIS/USERSETT/
-rw---- 2.0 fat 1160 bx defN 20-Mar-30 11:31 PREDEFHI/PREDEFIS/USERSETT/USER_SET.WBX
drwx--- 2.0 fat 0 bx stor 20-Apr-03 00:37 PREDEFHI/BACKUP/
drwx--- 2.0 fat 0 bx stor 20-Apr-03 00:37 PREDEFHI/BACKUP/WIP/
drwx--- 2.0 fat 0 bx stor 20-Apr-03 00:37 PREDEFHI/BACKUP/WIP/32/
drwx--- 2.0 fat 0 bx stor 20-Apr-03 01:04 PREDEFHI/BACKUP/WIP/32/CONTACTS/
-rw---- 2.0 fat 208 tx defN 20-Apr-03 01:04 PREDEFHI/BACKUP/WIP/32/CONTACTS/1.VCF
-rw---- 2.0 fat 214 bx defN 20-Mar-30 11:31 PREDEFHI/BACKUP/WIP/F01
同様の質問で問題は解決されませんでした。 https://stackoverflow.com/questions/15033646/compression-method-for-xlsx-with-7z
答え1
Goを使用すると、次のことができます。
package main
import (
"archive/zip"
"io"
"os"
)
const creatorFAT = 0
func main() {
// in
file, _ := os.Open("in.txt")
info, _ := file.Stat()
head, _ := zip.FileInfoHeader(info)
// default is Unix
head.CreatorVersion = creatorFAT
// out
zipfile, _ := os.Create("out.zip")
archive := zip.NewWriter(zipfile)
// write
writer, _ := archive.CreateHeader(head)
io.Copy(writer, file)
archive.Close()
}
結果:
$ zipinfo out.zip
Archive: out.zip
Zip file size: 151 bytes, number of entries: 1
-rw-rw-rw- 2.0 fat 7 bX stor 20-Apr-02 19:54 in.txt
1 file, 7 bytes uncompressed, 7 bytes compressed: 0.0%
答え2
フォルダを解凍する必要があります。その後、-kオプションを使用して再圧縮すると、脂肪は2.0になります。これがうまくいくかどうかはわかりませんが、試してみる価値があります。これを行うには、コマンドラインを使用する必要があります。
答え3
問題は、user_settings.wbxmlファイルがファイルサイズまたは連絡先の数に応じて何かを更新する必要があることです。
答え4
このタスクを自動的に実行する強力なツールを紹介します。 https://github.com/pas-calc/nokia-contacts
必要に応じてこのスクリプトを調整できます。 Pythonに関連する場合はfrom zipfile import ZipFile
。