diff --git a/src/System.IO.FileSystem/nf_sys_io_filesystem_System_IO_NativeFindFile.cpp b/src/System.IO.FileSystem/nf_sys_io_filesystem_System_IO_NativeFindFile.cpp index 94e481216f..9daaa760e5 100644 --- a/src/System.IO.FileSystem/nf_sys_io_filesystem_System_IO_NativeFindFile.cpp +++ b/src/System.IO.FileSystem/nf_sys_io_filesystem_System_IO_NativeFindFile.cpp @@ -25,12 +25,15 @@ HRESULT Library_nf_sys_io_filesystem_System_IO_NativeFindFile::GetFileInfo___STA NANOCLR_CHECK_HRESULT(Library_nf_sys_io_filesystem_System_IO_NativeIO::FindVolume(stack.Arg0(), driver, path)); + // zero initialize the fileInfo + memset(&fileInfo, 0, sizeof(FS_FILEINFO)); + NANOCLR_CHECK_HRESULT(driver->GetFileInfo(path, &fileInfo, &found)); if (found) { // find type definition, don't bother checking the result as it exists for sure - g_CLR_RT_TypeSystem.FindTypeDef("NativeFindFile", "System.IO", nativeFindFileTypeDef); + g_CLR_RT_TypeSystem.FindTypeDef("NativeFileInfo", "System.IO", nativeFindFileTypeDef); // create an instance of NANOCLR_CHECK_HRESULT(g_CLR_RT_ExecutionEngine.NewObjectFromIndex(top, nativeFindFileTypeDef)); diff --git a/targets/ChibiOS/_FatFs/fatfs_FS_Driver.cpp b/targets/ChibiOS/_FatFs/fatfs_FS_Driver.cpp index d17035a61f..225826f935 100644 --- a/targets/ChibiOS/_FatFs/fatfs_FS_Driver.cpp +++ b/targets/ChibiOS/_FatFs/fatfs_FS_Driver.cpp @@ -744,6 +744,9 @@ HRESULT FATFS_FS_Driver::GetFileInfo(const VOLUME_ID *volume, const char *path, // store the attributes fileInfo->Attributes = info.fattrib; + // set the file size + fileInfo->Size = info.fsize; + // no need to set the file name details as managed code already has this info } diff --git a/targets/ChibiOS/_littlefs/littlefs_FS_Driver.cpp b/targets/ChibiOS/_littlefs/littlefs_FS_Driver.cpp index 08b4cdfb70..0eaada5450 100644 --- a/targets/ChibiOS/_littlefs/littlefs_FS_Driver.cpp +++ b/targets/ChibiOS/_littlefs/littlefs_FS_Driver.cpp @@ -733,6 +733,8 @@ HRESULT LITTLEFS_FS_Driver::GetFileInfo(const VOLUME_ID *volume, const char *pat &fileInfo->Attributes, NANO_LITTLEFS_ATTRIBUTE_SIZE); + fileInfo->Size = info.size; + // no need to set the file name details as managed code already has this info } @@ -1212,4 +1214,4 @@ FILESYSTEM_DRIVER_INTERFACE g_LITTLEFS_FILE_SYSTEM_DriverInterface = { "LITTLEFS", 0, -}; \ No newline at end of file +}; diff --git a/targets/ESP32/_FatFs/fatfs_FS_Driver.cpp b/targets/ESP32/_FatFs/fatfs_FS_Driver.cpp index 0afadb5662..4225f1844d 100644 --- a/targets/ESP32/_FatFs/fatfs_FS_Driver.cpp +++ b/targets/ESP32/_FatFs/fatfs_FS_Driver.cpp @@ -642,9 +642,22 @@ HRESULT FATFS_FS_Driver::GetFileInfo(const VOLUME_ID *volume, const char *path, // set found flag *found = true; + // store the attributes + if (S_ISDIR(info.fattrib)) + { + fileInfo->Attributes = FileAttributes::FileAttributes_Directory; + } + else + { + fileInfo->Attributes = FileAttributes::FileAttributes_Archive; + } + // store the attributes fileInfo->Attributes = info.fattrib; + // set the file size + fileInfo->Size = info.fsize; + // no need to set the file name details as managed code already has this info } diff --git a/targets/ESP32/_IDF/esp32/app_main.c b/targets/ESP32/_IDF/esp32/app_main.c index 7cda78e1ba..0e62ae92a2 100644 --- a/targets/ESP32/_IDF/esp32/app_main.c +++ b/targets/ESP32/_IDF/esp32/app_main.c @@ -61,8 +61,8 @@ void app_main() ESP_ERROR_CHECK(nvs_flash_init()); // start receiver task pinned to core 1 - xTaskCreatePinnedToCore(&receiver_task, "ReceiverThread", 3072, NULL, 5, NULL, 0); + xTaskCreatePinnedToCore(&receiver_task, "ReceiverThread", 3072, NULL, 5, NULL, 1); // start the CLR main task pinned to core 0 - xTaskCreatePinnedToCore(&main_task, "main_task", 15000, NULL, 5, NULL, 1); + xTaskCreatePinnedToCore(&main_task, "main_task", 15000, NULL, 5, NULL, 0); } diff --git a/targets/ESP32/_littlefs/littlefs_FS_Driver.cpp b/targets/ESP32/_littlefs/littlefs_FS_Driver.cpp index 6da3ccbcf7..f41694d127 100644 --- a/targets/ESP32/_littlefs/littlefs_FS_Driver.cpp +++ b/targets/ESP32/_littlefs/littlefs_FS_Driver.cpp @@ -699,6 +699,9 @@ HRESULT LITTLEFS_FS_Driver::GetFileInfo(const VOLUME_ID *volume, const char *pat fileInfo->Attributes = FileAttributes::FileAttributes_Archive; } + // set the file size + fileInfo->Size = info.st_size; + // no need to set the file name details as managed code already has this info } diff --git a/targets/netcore/littlefs/littlefs_FS_Driver.cpp b/targets/netcore/littlefs/littlefs_FS_Driver.cpp index 9c0d104617..2b33ecbe12 100644 --- a/targets/netcore/littlefs/littlefs_FS_Driver.cpp +++ b/targets/netcore/littlefs/littlefs_FS_Driver.cpp @@ -702,6 +702,8 @@ HRESULT LITTLEFS_FS_Driver::GetFileInfo(const VOLUME_ID *volume, const char *pat &fileInfo->Attributes, NANO_LITTLEFS_ATTRIBUTE_SIZE); + fileInfo->Size = info.size; + // no need to set the file name details as managed code already has this info }