mirror of
https://github.com/momo5502/emulator.git
synced 2026-01-18 11:13:57 +00:00
Prepare filesystem support
This commit is contained in:
@@ -1530,7 +1530,7 @@ namespace
|
||||
if (!f->enumeration_state || query_flags & SL_RESTART_SCAN)
|
||||
{
|
||||
f->enumeration_state.emplace(file_enumeration_state{});
|
||||
f->enumeration_state->files = scan_directory(f->name);
|
||||
f->enumeration_state->files = scan_directory(c.win_emu.file_sys.translate(f->name));
|
||||
}
|
||||
|
||||
auto& enum_state = *f->enumeration_state;
|
||||
@@ -2585,7 +2585,8 @@ namespace
|
||||
const emulator_object<LCID> default_locale_id,
|
||||
const emulator_object<LARGE_INTEGER> /*default_casing_table_size*/)
|
||||
{
|
||||
const auto locale_file = utils::io::read_file(R"(C:\Windows\System32\locale.nls)");
|
||||
const auto locale_file =
|
||||
utils::io::read_file(c.win_emu.file_sys.translate(R"(C:\Windows\System32\locale.nls)"));
|
||||
if (locale_file.empty())
|
||||
{
|
||||
return STATUS_FILE_INVALID;
|
||||
@@ -2825,14 +2826,14 @@ namespace
|
||||
if (create_disposition & FILE_CREATE)
|
||||
{
|
||||
std::error_code ec{};
|
||||
std::filesystem::create_directory(f.name, ec);
|
||||
std::filesystem::create_directory(c.win_emu.file_sys.translate(f.name), ec);
|
||||
|
||||
if (ec)
|
||||
{
|
||||
return STATUS_ACCESS_DENIED;
|
||||
}
|
||||
}
|
||||
else if (!std::filesystem::is_directory(f.name))
|
||||
else if (!std::filesystem::is_directory(c.win_emu.file_sys.translate(f.name)))
|
||||
{
|
||||
return STATUS_OBJECT_NAME_NOT_FOUND;
|
||||
}
|
||||
@@ -2854,7 +2855,7 @@ namespace
|
||||
|
||||
FILE* file{};
|
||||
|
||||
const auto error = open_unicode(&file, f.name, mode);
|
||||
const auto error = open_unicode(&file, c.win_emu.file_sys.translate(f.name), mode);
|
||||
|
||||
if (!file)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user