Ticket #210 (accepted enhancement)

Opened 6 years ago

Last modified 5 years ago

Eraser not deleting very long filenames, round 3

Reported by: borg42 Owned by: Joel
Priority: major Milestone: Eraser 6.1/6.2
Component: Core Version:
Keywords: long filenames Cc:
Processor Architecture: Blocked By: #277
Blocking: Operating System:

Description

Follow-up to #41 and #135

I understand that handling of NTFS long filenames is not available in .NET, however, so it can't be fixed+forgotten, but the problem it creates is major _and_ there might be a workaround.. so please re-consider :)

Additions to the problem:

  • MSN file sharing and IE can easily create too long filenames, so the problem may be pretty common
  • On my PCs, erasing around too long filenames actually crashed Eraser, with only indirect hint (fragment of current filename string)
  • Even free space deletion crashes
  • The crash closes the parent process - even if it was explorer.exe
  • Crashing is not a way for a GUI programme to respond to an issue in the wild, IMO :)

Suggestion:

  • Catch exceptions around the erasing, (optionally?) skip on error and report it in the end
  • Even better, check for filename length (on NTFS of course) and explicitly report
  • Even better, move+rename the file to %TEMP% before processing, and restore afterwards (if needed). Not failproof (not sure about open files) + has a time window where power loss is problematic, so making it an option might be a good idea.

Using Eraser v5.84, Windows XP SP2, NTFS.

Blocking

IdSummaryMilestone
#210Eraser not deleting very long filenames, round 3Eraser 6.1/6.2

Blocked by

IdSummaryMilestone
#210Eraser not deleting very long filenames, round 3Eraser 6.1/6.2
#277Eraser Unified File ManagerEraser 6.1/6.2

Change History

comment:1 Changed 6 years ago by Joel

Hmmm, okay thanks for reporting the new additions!

  • I know MSN creates long names - that's where the initial report came from (and why Eraser crashed for me to begin with)
  • Which version of Eraser crashes? I believe only v5 will do so
  • The crash will close the parent process only if you're using a context menu erase from Explorer, am I right?
  • Haha, yes and it is so true - crashing is never the right way.

Responses to your suggestions

  • I believe v6 will report an "Invalid Path" exception when you try doing an erase on a long file name though that only appears in the log as an error.
  • We can't rename the file either because even renaming breaks the 256/260 character file name limit...

Thanks for the suggestions and after running through them we probably need something... more creative?

comment:2 Changed 5 years ago by Joel

  • Owner set to Joel
  • Status changed from new to accepted
  • Milestone set to Eraser 6.1/6.2

I'll reconsider this for 6.1

comment:3 Changed 5 years ago by Joel

#277 must be implemented before this can be achieved.

comment:4 Changed 5 years ago by Joel

  • Blocked By 277 added
Note: See TracTickets for help on using tickets.