Add Option to ignore file name casing in IFileStore.fetchInfo() - #2952
Open
HannesWell wants to merge 1 commit into
Open
HannesWell wants to merge 1 commit into
HannesWell wants to merge 1 commit into
Conversation
Contributor
|
This pull request changes some projects for the first time in this development cycle. An additional commit containing all the necessary changes was pushed to the top of this PR's branch. To obtain these changes (for example if you want to push more changes) either fetch from your fork or apply the git patch. Git patchFurther information are available in Common Build Issues - Missing version increments. |
Contributor
HannesWell
force-pushed
the
windows-file-attribute-read-speedup
branch
3 times, most recently
from
September 21, 2026 19:12
5148317 to
b4fc736
Compare
Introduce a new file-system option `EFS.IGNORE_NAME_CASE` and add a fast-path to Win32Handler in case that option is set to not determine the file's real name on the file-system. Additionally overwrite Win32Handler.listDirectoryAndGetFileInfos(String) to leverage that new fast-path, too.
HannesWell
force-pushed
the
windows-file-attribute-read-speedup
branch
from
September 22, 2026 05:07
b4fc736 to
d0d378b
Compare
Contributor
|
I think you have a bug, missing files are reported as I/O errors. readDosFileAttributesIntoFileInfo catches FileNotFoundException, but NIO throws NoSuchFileException for a missing file. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Introduce a new file-system option
EFS.IGNORE_NAME_CASEand add a fast-path toWin32Handlerin case that option is set to not determine the file's real name on the file-system.Additionally overwrite
Win32Handler.listDirectoryAndGetFileInfos(String)to leverage that new fast-path too, similar toThis currently is based on
which introduces the methods
IFileStore.exists()andIFileStore.isDirectory(), which make it simpler to use the new option here.In a very simple benchmark I ran locally on Windows, basically just fetching the same file's info in a loop a million times, the new fast-path was almost twice as fast as the existing code.
Real numbers are probably different. For random, not previously fetched files, the difference might even be greater and the numbers probably also depend on the size of the parent directory (i.e. I assume the currently used method to be slower).