fix: 解决回收站文件放置错误问题 (#4203)

Refs https://github.com/1Panel-dev/1Panel/issues/4199
This commit is contained in:
zhengkunwang 2024-03-15 16:40:07 +08:00 committed by GitHub
parent 341f45b4ef
commit 46f01032b8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -153,22 +153,20 @@ func (r RecycleBinService) Clear() error {
}
func getClashDir(realPath string) (string, error) {
trimmedPath := strings.Trim(realPath, "/")
parts := strings.Split(trimmedPath, "/")
dir := ""
if len(parts) > 0 {
dir = parts[0]
partitions, err := disk.Partitions(false)
if err != nil {
return "", err
partitions, err := disk.Partitions(false)
if err != nil {
return "", err
}
for _, p := range partitions {
if p.Mountpoint == "/" {
continue
}
for _, p := range partitions {
if p.Mountpoint == dir {
if err = createClashDir(path.Join(p.Mountpoint, ".1panel_clash")); err != nil {
return "", err
}
return dir, nil
if strings.HasPrefix(realPath, p.Mountpoint) {
clashDir := path.Join(p.Mountpoint, ".1panel_clash")
if err = createClashDir(path.Join(p.Mountpoint, ".1panel_clash")); err != nil {
return "", err
}
return clashDir, nil
}
}
return constant.RecycleBinDir, createClashDir(constant.RecycleBinDir)