Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

<filesystem>: __std_fs_get_stats should work on FAT32 #2373

Merged
merged 6 commits into from
May 5, 2022

Conversation

fsb4000
Copy link
Contributor

@fsb4000 fsb4000 commented Dec 3, 2021

Fixes #233

изображение

изображение

@fsb4000 fsb4000 requested a review from a team as a code owner December 3, 2021 20:26
stl/src/filesystem.cpp Outdated Show resolved Hide resolved
@StephanTLavavej StephanTLavavej added the bug Something isn't working label Dec 4, 2021
@StephanTLavavej StephanTLavavej self-assigned this Dec 8, 2021
stl/src/filesystem.cpp Outdated Show resolved Hide resolved
@fsb4000
Copy link
Contributor Author

fsb4000 commented Jan 16, 2022

DevCom-1638272 with the same issue.

Copy link
Contributor

@strega-nil-ms strega-nil-ms left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have looked this over (with a pen and paper to make sure I understood the function!) and I believe this to be a correct and good change. I also had billy look over my shoulder at it, and he didn't have any major problems.

My one concern was adding an extra function call when checking only for reparse point data, but given that we have multiple calls to GetFileInformationByHandleEx anyways, and the call is quite cheap, I'm no longer concerned.

Thanks!

@AlexGuteniev
Copy link
Contributor

My one concern was adding an extra function call when checking only for reparse point data,

On the other hand, in a typical case, when it is not a reparse point, the number of calls is the same; actually when checking not only for RP a call is saved.

@StephanTLavavej StephanTLavavej removed their assignment May 4, 2022
@StephanTLavavej StephanTLavavej self-assigned this May 5, 2022
@StephanTLavavej
Copy link
Member

I'm mirroring this to the MSVC-internal repo - please notify me if any further changes are pushed.

@StephanTLavavej StephanTLavavej merged commit 0343561 into microsoft:main May 5, 2022
@StephanTLavavej
Copy link
Member

Thanks for fixing this most modern filesystem library to work with this most ancient filesystem! 😹 🎉 🚀

@fsb4000 fsb4000 deleted the fix233 branch May 5, 2022 10:12
ericmehl added a commit to ericmehl/gaffer that referenced this pull request Oct 9, 2023
MSVC's `std::filesystem` has a bug that causes it to fail to retrieve
file information on exFAT partitions in versions prior to (roughly)
17.2. That version is the first release after merging a fix from
microsoft/STL#2373, but I'm not certain that
version has the fix included.

Using `std::filesystem::status` instead of `symlink_status()` seems
justified because exFAT paritions don't support symlinks. If other
partition types are included in the filter for error code 87, this
may need to be revisited.
ericmehl added a commit to ericmehl/gaffer that referenced this pull request Oct 9, 2023
MSVC's `std::filesystem` has a bug that causes it to fail to retrieve
file information on exFAT partitions in versions prior to (roughly)
17.2. That version is the first release after merging a fix from
microsoft/STL#2373, but I'm not certain that
version has the fix included.

Using `std::filesystem::status` instead of `symlink_status()` seems
justified because exFAT paritions don't support symlinks. If other
partition types are included in the filter for error code 87, this
may need to be revisited.
ericmehl added a commit to ericmehl/gaffer that referenced this pull request Oct 10, 2023
MSVC's `std::filesystem` has a bug that causes it to fail to retrieve
file information on exFAT partitions in versions prior to (roughly)
17.2. That version is the first release after merging a fix from
microsoft/STL#2373, but I'm not certain that
version has the fix included.

Using `std::filesystem::status` instead of `symlink_status()` seems
justified because exFAT paritions don't support symlinks. If other
partition types are included in the filter for error code 87, this
may need to be revisited.
ericmehl added a commit to ericmehl/gaffer that referenced this pull request Oct 10, 2023
MSVC's `std::filesystem` has a bug that causes it to fail to retrieve
file information on exFAT partitions in versions prior to (roughly)
17.2. That version is the first release after merging a fix from
microsoft/STL#2373, but I'm not certain that
version has the fix included.

Using `std::filesystem::status` instead of `symlink_status()` seems
justified because exFAT paritions don't support symlinks. If other
partition types are included in the filter for error code 87, this
may need to be revisited.
ericmehl added a commit to ericmehl/gaffer that referenced this pull request Oct 19, 2023
MSVC's `std::filesystem` has a bug that causes it to fail to retrieve
file information on exFAT partitions in versions prior to (roughly)
17.2. That version is the first release after merging a fix from
microsoft/STL#2373, but I'm not certain that
version has the fix included.

Using `std::filesystem::status` instead of `symlink_status()` seems
justified because exFAT paritions don't support symlinks. If other
partition types are included in the filter for error code 87, this
may need to be revisited.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

<filesystem>: directory_entry does not work for paths on FAT32 filesystems
5 participants
  翻译: