【问题标题】:fatfs : By using f_mkdir() function creating Unknown type file inside the folderfatfs :通过使用 f_mkdir() 函数在文件夹内创建未知类型文件
【发布时间】:2018-06-12 05:46:23
【问题描述】:

我想知道在使用f_mkdir() 函数后,我正在创建“SENT”文件夹,但在该文件夹中,又创建了一个没有任何描述的“SENT”文件/文件夹。

iFResult = f_stat("/SENT" ,&File_Info);     // Check "SENT" folder is 
// present or not, if not present then create it.    
if(iFResult > FR_OK)
{
    iFResult = f_mkdir("/SENT");    //  Create a new directory 
}

我无法理解问题出在我的代码上。任何帮助表示赞赏。

[fatfs:通用 FAT 文件系统模块]

【问题讨论】:

  • f_statf_mkdir 之后的iFResult 的值是多少?
  • 该函数成功完成后返回零,不成功返回非零值。更多参考:-elm-chan.org/fsw/ff/doc/rc.html
  • 我知道。我的问题是,当您按上述方式运行时,特别是在f_mkdir 之后,它们实际上返回了什么值?另外,其他操作系统是否将SENT 报告为文件,还是仅报告为 Windows?
  • 当 SD 卡为空时,第一次迭代“f_stat”返回“FR_NO_FILE”,即 4,因为它是枚举类型,“f_mkdir”返回“FR_OK”(0),第 2 次迭代它“f_stat”返回“FR_OK”,但在“if”条件内没有。
  • 嗯,您是否尝试过使用其他操作系统读取 SD 卡?你是如何格式化 SD 卡的,使用 Windows 还是使用 fsfat?还有,fsfat自己认为SKIP是目录还是文件?

标签: c fatfs


【解决方案1】:

if(iFResult > FR_OK) 似乎是错误的。根据您必须测试的文档:

if (iFresult == FR_NO_FILE) {
    // file or subdir does not exist
}
else if (iFresult != FR_OK) {
    // error
}
else // file/subdir exists

【讨论】:

  • 我不在 Windows 上工作。我正在使用这个第三方文件系统开发 TM4C1294NCPDT 微控制器。我正在使用此给定链接中的供应商提供的参考和示例代码。 elm-chan.org/fsw/ff/00index_e.html
  • 感谢以上解决方案!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-17
相关资源
最近更新 更多