MCPcopy Create free account
hub / github.com/1Panel-dev/1Panel / Delete

Method Delete

agent/app/service/file.go:281–330  ·  view source on GitHub ↗
(op request.FileDelete)

Source from the content-addressed store, hash-verified

279}
280
281func (f *FileService) Delete(op request.FileDelete) error {
282 if op.IsDir {
283 excludeDir := global.Dir.DataDir
284 if path.Base(op.Path) == ".1panel_clash" || op.Path == excludeDir {
285 return buserr.New("ErrPathNotDelete")
286 }
287 }
288 fo := files.NewFileOp()
289 recycleBinStatus, _ := settingRepo.Get(settingRepo.WithByKey("FileRecycleBin"))
290 if recycleBinStatus.Value == "Disable" {
291 op.ForceDelete = true
292 }
293 var historyTargets []string
294 if op.ForceDelete {
295 var err error
296 historyTargets, err = f.collectPermanentDeleteTargets(op.Path, op.IsDir)
297 if err != nil {
298 return err
299 }
300 }
301 if op.ForceDelete {
302 var err error
303 if op.IsDir {
304 err = fo.DeleteDir(op.Path)
305 } else {
306 err = fo.DeleteFile(op.Path)
307 }
308 if err != nil {
309 return err
310 }
311 if err := cleanupTrashInfoByEntryPath(op.Path); err != nil {
312 global.LOG.Warnf("cleanup trashinfo failed for %s: %v", op.Path, err)
313 }
314 f.cleanupPermanentDeleteHistory(historyTargets)
315 return nil
316 }
317 info, _ := fo.Fs.Stat(op.Path)
318 if info == nil || files.IsSymlink(info.Mode()) {
319 if err := os.Remove(op.Path); err != nil {
320 return err
321 }
322 f.cleanupPermanentDeleteHistory([]string{op.Path})
323 return nil
324 }
325
326 if err := NewIRecycleBinService().Create(request.RecycleBinCreate{SourcePath: op.Path}); err != nil {
327 return err
328 }
329 return favoriteRepo.Delete(favoriteRepo.WithByPath(op.Path))
330}
331
332func (f *FileService) BatchDelete(op request.FileBatchDelete) error {
333 fo := files.NewFileOp()

Callers

nothing calls this directly

Calls 13

DeleteDirMethod · 0.95
DeleteFileMethod · 0.95
NewIRecycleBinServiceFunction · 0.85
ModeMethod · 0.80
GetMethod · 0.65
WithByKeyMethod · 0.65
CreateMethod · 0.65
DeleteMethod · 0.65
WithByPathMethod · 0.65

Tested by

no test coverage detected