🐛 复制资源文件后导出再导入后丢失 Fix https://github.com/siyuan-note/siyuan/issues/5320

This commit is contained in:
Liang Ding 2022-06-30 11:29:05 +08:00
parent ea4f722edb
commit a0a3d2f28e
No known key found for this signature in database
GPG key ID: 136F30F901A2231D
3 changed files with 34 additions and 25 deletions

View file

@ -394,6 +394,7 @@ func ImportFromLocalPath(boxID, localPath string, toPath string) (err error) {
})
targetPaths := map[string]string{}
assetsDone := map[string]string{}
// md 转换 sy
i := 0
@ -481,15 +482,19 @@ func ImportFromLocalPath(boxID, localPath string, toPath string) (err error) {
}
fullPath, exist = assets[absDest]
if exist {
name := filepath.Base(fullPath)
ext := filepath.Ext(name)
name = strings.TrimSuffix(name, ext)
name += "-" + ast.NewNodeID() + ext
assetTargetPath := filepath.Join(assetDirPath, name)
delete(assets, absDest)
if err = gulu.File.Copy(fullPath, assetTargetPath); nil != err {
util.LogErrorf("copy asset from [%s] to [%s] failed: %s", fullPath, assetTargetPath, err)
return ast.WalkContinue
existName := assetsDone[absDest]
var name string
if "" == existName {
name = filepath.Base(fullPath)
name = util.AssetName(name)
assetTargetPath := filepath.Join(assetDirPath, name)
if err = gulu.File.Copy(fullPath, assetTargetPath); nil != err {
util.LogErrorf("copy asset from [%s] to [%s] failed: %s", fullPath, assetTargetPath, err)
return ast.WalkContinue
}
assetsDone[absDest] = name
} else {
name = existName
}
n.Tokens = gulu.Str.ToBytes("assets/" + name)
}
@ -568,9 +573,7 @@ func ImportFromLocalPath(boxID, localPath string, toPath string) (err error) {
}
if exist {
name := filepath.Base(absolutePath)
ext := filepath.Ext(name)
name = strings.TrimSuffix(name, ext)
name += "-" + ast.NewNodeID() + ext
name = util.AssetName(name)
assetTargetPath := filepath.Join(assetDirPath, name)
if err = gulu.File.CopyFile(absolutePath, assetTargetPath); nil != err {
util.LogErrorf("copy asset from [%s] to [%s] failed: %s", absolutePath, assetTargetPath, err)