NodeMCU ESP12-E模块LittleFS文件上传后无法读取求助
ESP8266 LittleFS 文件存在但无法读取的解决方法
一、代码逻辑错误(核心问题)
你代码中的LittleFS.exists判断逻辑完全颠倒,导致执行流程混乱:
原错误代码:
if(LittleFS.exists("/example.txt")) {Serial.println("File does not exist");return;} else {Serial.println("File exists"); }
这段代码的实际行为是:当文件存在时,打印「File does not exist」并直接终止后续代码;当文件不存在时,才会打印「File exists」并继续执行打开文件的逻辑——这就是你看到矛盾输出的根本原因。
修正后的判断代码:
if(!LittleFS.exists("/example.txt")) { Serial.println("File does not exist"); return; } else { Serial.println("File exists"); }
二、其他可能的排查点
- 确认LittleFS插件兼容性:
由于你之前安装LittleFS时出过问题,建议重新下载与Arduino IDE 1.8.19、ESP8266 core版本匹配的LittleFS插件,替换到Arduino IDE的tools目录下,避免版本不兼容导致上传失败。 - 检查Flash分区配置:
在Arduino IDE的「工具」→「Flash大小」中,选择与NodeMCU(ESP12-E)匹配的选项(比如「4MB (FS:2MB OTA:~1019KB)」),过小的FS分区会导致文件无法正常写入。 - 核对文件信息:
确保example.txt确实放在sketch目录的data文件夹下,且文件名大小写与代码中的/example.txt完全一致(LittleFS区分大小写);上传前清空data文件夹,重新放入文件后执行「Tools」→「ESP8266 LittleFS Data Upload」,观察上传过程无报错。 - 测试文件权限:
若修正逻辑后仍无法打开,可尝试删除旧文件后重新上传:// 测试用:删除旧文件 if(LittleFS.exists("/example.txt")) { LittleFS.remove("/example.txt"); Serial.println("Old file removed"); }
内容的提问来源于stack exchange,提问作者Jochiehans
相关产品推荐
相关产品推荐

