KhronosGroup / Vulkan-Samples

One stop solution for all Vulkan samples
Apache License 2.0
4.23k stars 634 forks source link

Fix folder creation on Android #1170

Open jloehr opened 1 week ago

jloehr commented 1 week ago

Description

root doesn't has a trailing slash, so on Android a folder named filesoutput/ was created instead of files/output/. This PR adds the missing directory separator when creating folders.

General Checklist:

Please ensure the following points are checked:

CLAassistant commented 1 week ago

CLA assistant check
All committers have signed the CLA.

asuessenbach commented 5 days 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.

jloehr commented 5 days ago

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.