请教连续读写多文件方法

你好,

我们基于U盘做存储介质的数码相框基本上已实现了全部功能,目前程序卡在一个问题上,我可以从U盘按文件名读出一个图片并显示出来,但我的目的是按顺序显示U盘里的所有文件,我现在的做法是定义两组参数 CMD_PARAM_I mCmdParam; CMD_PARAM_I mCmdParam0; 其中mCmdParam用于枚举U盘下的图片,mCmdParam0用于读取枚举到的当前文件的内容,UINT8 mCopyCodeStringToIRAM()这个函数我也定义了两个分别用于两组参数,但是最后结果是只能枚举到一个文件,并且程序下来不会去读它,请问下是不是CH375FileOpen( )先用于枚举,再用于读文件中冲突了?

请问下有没有方法实现这个功能呢?

这样可能不行,你可以自己做一组变量,你使用mCmdParam枚举到文件之后放到你自己的变量里面去,至于你怎么读取文件显示你还是需要mCmdParam变量。


原来有这样想过,但是一个U盘里成百上千个图片,那不是要占用很多的RAM? 还有一种方法就是把图片按一定的规则命名,程序里就不做枚举的步骤了,但这样产品又不好推广.

还有其他的方法吗?


此贴没技术人员关注吗?


你可以不可以把你详细的流程说下,这样才好提供好的方法给你


我现在的做法是使用mCmdParam枚举当前U盘下的图片,当找到一个图片时,再使用另一组mCmdParam0来读取BMP文件的内容,但这样做只能枚举到一个文件,并且无法正确读取这个文件,我个人的理解是CH375FileOpen( )这个函数在执行CH375FileClose( )之前不能二次调用,不然会出错.

我现在还想使用你们的库函数,并且达到我的目的(枚举U盘下的文件,并且每枚举到一个文件后要进行读的操作),请问有好的解决方法吗?


按照你说的,你每次只需要存一个文件就可以了啊!要不这样吧,你打025-52638375,当面做下技术交流。


这个问题应该是枚举函数返回值是一个变量,你枚举了N次后得到的是最后一个枚举到的文件名,所以按照二楼说的意思就是应该把每次枚举到的文件名都存到缓存里面,否则每次枚举的文件名都会覆盖上次枚举的文件名,因此你得到就是最后一次枚举到的文件名。


如果你一次只读取一个文件的话,你只需要存储一下一个文件名就可以了,如果你需要枚举很多文件并且要把文件逐个读取出来的话,并且还需要显示文件名的话,那只能采用缓存的方式了,如果你每次只读取一个文件,那么只需要缓存一个文件这样会比较好做,同时你读取数据完了之后只需要记住枚举序号就可以了。


只有登录才能回复,可以选择微信账号登录