Closed jloehr closed 2 weeks ago
Under what circumstances do you get root
without a trailing slash?
Maybe this function should be able handle both cases, root
with and without a trailing slash.
Under Android fs->external_storage_directory().string()
(which is passed into create_path
as root
) returns something along /data/data/com.khronos.vulkan_samples/files
(don't have the exact path at hand now) without the trailing space.
https://github.com/KhronosGroup/Vulkan-Samples/blob/4c911f774c4069cafa215d61bdb9a9a2dfa18b22/components/filesystem/src/legacy.cpp#L74 seems to be the only place where create_path
is called. We ran samples with that change on Android, Windows and Linux and didn't encounter any issues.
Maybe we can replace it with std::filesystem::create_directories
altogether. Though haven't tested that. We ran with the simple added slash.
Hi @tomadamatkinson, can you take a quick look here? Looks reasonable, but wanted to double check with you before merging. Thanks
Hey @jloehr, this approach likely works, but I was a little unsure if this would affect other platforms.
Maybe we can replace it with std::filesystem::create_directories altogether. Though haven't tested that. We ran with the simple added slash.
I think this is a great suggestion! It also pointed out some bugs that we could have had with vkb::fs in the long run. I also didn't know how the standard library would behave so i added some tests in here too. Please take a look at #1214 as an alternative approach
That said i am happy with either PR to merge :)
Merging w/ Tom's approval - per discussion on Monday's call - LMK if this causes issues and we can revert
Description
root
doesn't has a trailing slash, so on Android a folder namedfilesoutput/
was created instead offiles/output/
. This PR adds the missing directory separator when creating folders.General Checklist:
Please ensure the following points are checked:
[x] This PR describes the scope and expected impact of the changes I am making
Note: The Samples CI runs a number of checks including:
If this PR contains framework changes:
batch
command line argument to make sure all samples still work properly