Ich versuche, Kontakte von einer Micro-SD-Karte auf ein (nicht Android-)Nokia-Telefon zu importieren. Daher habe ich zunächst die aktuellen Kontakte auf die Micro-SD-Karte exportiert, in der Hoffnung, dass ich die exportierte Datei ändern und dann importieren kann.
Beim exportierten Dateityp handelt es sich um eine Nokia-Sicherungsdatei .NBF
. Es scheint sich tatsächlich um eine normale zip
Datei zu handeln.
Ich kann die exportierte .NBF
Datei entpacken und ändern (Kontakte sind in gespeichert .vcf - vcard
).
Wenn ich die Datei jedoch zippe und versuche, sie zu importieren, meldet das Telefon, dass die Datei beschädigt ist.
ich habe die ZIP-Dateien überprüft mit zipinfo
:
Unveränderte Datei:
$ 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%
dann ändere 1.vcf
und aktualisiere ich Backup001.NBF
mit:
zip Backup001.NBF -f -r predefhiddenfolder/backup/WIP/32/contacts/1.vcf
Geändert:
$ 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%
in dieser Zeile:
-rw-r--r-- 3.0 unx 208 tx defN 20-Apr-03 01:04 predefhiddenfolder/backup/WIP/32/contacts/1.vcf
heißt es, das Format ist 3.0 unx
.
gibt es eine Möglichkeit, es zu komprimieren, sodass das Format wie folgt lautet 0.0 fat
?
Bearbeiten: einige Klarstellungen hinzugefügt
Bearbeiten: Ich habe versucht, -k
die Flagge zu verwenden, wie von @FennecTECH vorgeschlagen
es sieht besser aus, funktioniert aber immer noch nicht.
$ 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
ähnliche Frage, die das Problem nicht gelöst hat: https://stackoverflow.com/questions/15033646/Komprimierungsmethode für xlsx mit 7z
Antwort1
Mit Go können Sie Folgendes tun:
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()
}
Ergebnis:
$ 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%
Antwort2
Sie müssen den Ordner entpacken. Dann komprimieren Sie ihn erneut mit der Option -k. Dadurch erhalten Sie die Version 2.0 Fat. Ich weiß nicht, ob das funktioniert, aber einen Versuch ist es wert. Sie müssen es über die Befehlszeile tun.
Antwort3
Ich denke, das Problem liegt an der Datei user_settings.wbxml. Dort sollten bestimmte Dinge aktualisiert werden, wahrscheinlich je nach Größe der Datei oder Anzahl der Kontakte
Antwort4
Hier ist mein leistungsstarkes Tool, das dies automatisch erledigt. https://github.com/pas-calc/nokia-contacts
Sie können dieses Skript an Ihre Bedürfnisse anpassen. Für Python sollten Sie sich an halten from zipfile import ZipFile
.