NF: use File as much as possible #18350
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
While trying to understand how media are accessed, I realize that there are some part of the code that are not ideal.
The name of the media folder (and similarly the database) are sometime hard coded as "collection.media", and sometime obtained by taking the collection file, and replacing .anki2 by .media. Which means that code is not even consistent about where the medias are. Admittedly, the database is named "collection.anki2" everywhere except in test, so it's not actually an issue.
Also, I remarked that the code keep alternating between File and String through the code. This is furthermore complexified by the fact that the String can be a URI or a path and this is not always clear from context.
Sometime we have a string, create a File from it, do file operation, and then transform it into a string again. I find it clearer to use File as much as possible and keep strings: