You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 13:10:19