Summary: | Dolphin can not delete files with weird character encoding in file name | ||
---|---|---|---|
Product: | [Applications] dolphin | Reporter: | postix <postix> |
Component: | general | Assignee: | Dolphin Bug Assignee <dolphin-bugs-null> |
Status: | CONFIRMED --- | ||
Severity: | minor | CC: | cfeck, elvis.angelaccio, justin.zobel, mail, nate, postix |
Priority: | NOR | ||
Version: | 19.07.80 | ||
Target Milestone: | --- | ||
Platform: | Other | ||
OS: | Linux | ||
See Also: | https://bugs.kde.org/show_bug.cgi?id=413834 | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: |
Screenshot of the issue.
Example file with invalid encoding Minimal example project Video which demonstrates the issue. |
Can confirm with Dolphin 19.11.70 on KDE Neon Git Unstable. Could you please create a tar.gz archive with a file named this way and add it here? Created attachment 121937 [details] Example file with invalid encoding The file can be deleted via its inode: > find . -inum ${inode} -delete Created attachment 121938 [details] Minimal example project It seems that the faulty encoding vanishes when I download the attachment with the FireFox. That's why I created a minimal C++ example project. However it requires the ROOT framework to be installed. The "Form" function used is the following: https://root.cern.ch/doc/master/classTString.html#aeb44d6183d8b1f1b7090dbd3c93f5e39 I am sorry that I cannot deliver any other samples right now. I found a workaround: In Dolphin do: * Create a new folder * Move the weird files to this new folder with Dolphin * Delete the folder, ie the folder moves to trash * Delete the folder in the trash Just deleting the files directly does not work. > It seems that the faulty encoding vanishes when I download the attachment with the FireFox.
That's the reason I requested a tar.gz file which contains a file using a not working name.
I should have mentioned that I tried to this but failed: > tar -czf test.tar "\'\'$\'\020\365\226\377\177\'\'_Encoding.root\'" as tar will rename the file making the sample useless. However you can do this: > touch testfile > mv testfile ''$'\020\365\226\377\177''.test' :-) > mv testfile ''$'\020\365\226\377\177''.test'
I could delete the file using Dolphin. Need more information how to reproduce.
The minimal sample I found, which I cannot delete, is > touch $'\300' or any number greater than 300. Below it will create an ASCII, for example > touch $'\100' will create a file named "@" I am not sure why you are able to delete it. Maby you use a filesystem other than ext4? Which additional information could I give you? I am also using ext4. Are you using a UTF-8 locale? set | grep ^L[AC] > set | grep ^L[AC] > LANG=de_DE.UTF-8 > LANGUAGE= > LC_ALL=de_DE.UTF-8 > LC_NAME=de_DE.UTF-8 If you say that you are able to delete a directory that contains such a file, the bug isn't in kio. Needs someone to further investigate. Created attachment 123697 [details]
Video which demonstrates the issue.
I tried it again and I can no longer delete the folder with the weird file within Dolphin but with the "rm" command in a terminal. So it is likely related to KIO.
I made a video for you:
* Create a weird file
* Rename it
* Undo renaming
* Try to delete it
* Move it to a folder
* Delete the folder, ie move it to the trash
* Try to empty the trash
* Try to remove the folder in the trash
* Remove the folder with rm -rf
* Press F5 to update the cache so Dolphin notices that the Folder and file are actually gone
System update:
Operating System: Manjaro Linux
KDE Plasma Version: 5.17.2
KDE Frameworks Version: 5.64.0
Qt Version: 5.13.1
For the video I used a freshly created user account. However, a friend of mine, who is on Manjaro KDE as well, could not reproduce it unfortunately. Maybe I should try to reinstall my system or test it with a live version? I haven't investigated properly, but if you are trying to delete files inside trash:// KIO slave instead of using the file:// slave, then it probably cannot work because the encoding hack to support broken file names was only added for the file:// slave. (In reply to Christoph Feck from comment #16) > if you are trying to delete files > inside trash:// KIO slave instead of using the file:// slave, then it > probably cannot work because the encoding hack to support broken file names > was only added for the file:// slave. That's why the file in the folder is not displayed in Dolphin for trash:// but only for file:// Displays the file: > /home/user/.local/share/Trash/files/foo/ Does not display the file: > trash:/0-foo/ Moving to confirmed as it seems Christoph and Postix have confirmed where the issue lies. |
Created attachment 121929 [details] Screenshot of the issue. SUMMARY If a file contains weird character encodings like: $ls -l * ''$'\360\302\342''A'$'\374\177' 'output'$'\221\314\034''_'$'\026\177''.png Dolphin cannot delete those, but says they do not exist. They can be deleted by opening a terminal though. OBSERVED RESULT See screenshot. EXPECTED RESULT Dolphin does not complain. SOFTWARE/OS VERSIONS Operating System: Manjaro Linux KDE Plasma Version: 5.16.3 KDE Frameworks Version: 5.61.0 Qt Version: 5.13.0 Kernel Version: 5.2.4-1-MANJARO