mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-22 01:20:12 +01:00
🐛 备份还原时间保持不变
This commit is contained in:
parent
48b7364331
commit
cc8e9bc25f
1 changed files with 20 additions and 15 deletions
|
|
@ -526,13 +526,20 @@ func decryptDataDir(passwd string) (decryptedDataDir string, err error) {
|
||||||
if nil != err {
|
if nil != err {
|
||||||
return "", errors.New(Conf.Language(40))
|
return "", errors.New(Conf.Language(40))
|
||||||
}
|
}
|
||||||
|
|
||||||
metaJSON := map[string]string{}
|
metaJSON := map[string]string{}
|
||||||
if err = gulu.JSON.UnmarshalJSON(data, &metaJSON); nil != err {
|
if err = gulu.JSON.UnmarshalJSON(data, &metaJSON); nil != err {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
modTimes := map[string]time.Time{}
|
index := map[string]*CloudIndex{}
|
||||||
|
data, err = os.ReadFile(filepath.Join(backupDir, "index.json"))
|
||||||
|
if nil != err {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if err = gulu.JSON.UnmarshalJSON(data, &index); nil != err {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
err = filepath.Walk(backupDir, func(path string, info fs.FileInfo, _ error) error {
|
err = filepath.Walk(backupDir, func(path string, info fs.FileInfo, _ error) error {
|
||||||
if backupDir == path || pathJSON == info.Name() || strings.HasSuffix(info.Name(), ".json") {
|
if backupDir == path || pathJSON == info.Name() || strings.HasSuffix(info.Name(), ".json") {
|
||||||
return nil
|
return nil
|
||||||
|
|
@ -577,22 +584,20 @@ func decryptDataDir(passwd string) (decryptedDataDir string, err error) {
|
||||||
err = err0
|
err = err0
|
||||||
return io.EOF
|
return io.EOF
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
fi, err0 := os.Stat(path)
|
var modTime int64
|
||||||
if nil != err0 {
|
idx := index["/"+encryptedP]
|
||||||
util.LogErrorf("stat file [%s] failed: %s", path, err0)
|
if nil == idx {
|
||||||
err = err0
|
util.LogErrorf("index file [%s] not found", encryptedP)
|
||||||
return io.EOF
|
modTime = info.ModTime().Unix()
|
||||||
|
} else {
|
||||||
|
modTime = idx.Updated
|
||||||
|
}
|
||||||
|
if err0 = os.Chtimes(plainP, time.Unix(modTime, 0), time.Unix(modTime, 0)); nil != err0 {
|
||||||
|
util.LogErrorf("change file [%s] time failed: %s", plainP, err0)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
modTimes[plainP] = fi.ModTime()
|
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
|
|
||||||
for plainP, modTime := range modTimes {
|
|
||||||
if err = os.Chtimes(plainP, modTime, modTime); nil != err {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue