strcpy((char*)rbfDir,"1:/CODE/");
f_exe=(FIL *)gui_memin_malloc(sizeof(FIL)); //开辟FIL字节的内存区域
exeplayinfo.lfsize=_MAX_LFN*2+1; //长文件名最大长度
exeplayinfo.lfname=mymalloc(SRAMIN,exeplayinfo.lfsize); //为长文件缓存区分配内存
rval=f_opendir(&exeplaydir,(const TCHAR*)rbfDir); //打开选中的目录 --打开的是BIN文件--
// if(rval)break;
POINT_COLOR=RED;
LCD_ShowString(30,50,200,16,16,"1!");
rval=f_readdir(&exeplaydir,&exeplayinfo);//读取文件信息
// if(rval)break;//打开成功
fn=(u8*)(*exeplayinfo.lfname?exeplayinfo.lfname:exeplayinfo.fname);
POINT_COLOR=RED;
LCD_ShowString(30,70,200,16,16,"2!");
pname=gui_memin_malloc(strlen((const char*)fn)+strlen((const char*)rbfDir)+2);//申请内存
POINT_COLOR=RED;
LCD_ShowString(30,90,200,16,16,"3!");
if(pname==NULL)rval=1;//申请失败
{
pname=gui_path_name(pname,rbfDir,fn); //文件名加入路径
POINT_COLOR=RED;
LCD_ShowString(30,110,200,16,16,"4!");
rval=f_open(f_exe,(const TCHAR*)pname,FA_READ); //只读方式打开文件
POINT_COLOR=RED;
LCD_ShowString(30,130,200,16,16,"5!");
// if(rval)break; //打开失败
if(f_exe->fsize<MEM2_MAX_SIZE)//可以放的下,并且用户确定执行
{
gui_memset(mem2base,0,f_exe->fsize); //清空这片内存
rval=f_read(f_exe,mem2base,f_exe->fsize,(UINT*)&br);//读出BIN的所有内容
POINT_COLOR=RED;
LCD_ShowxNum(50,300,f_exe->fsize,4,12,0);
rbfsize = f_exe->fsize;
// if(rval)break; //打开失败,直接退出
}
}
为什么读出来的文件大小f_exe->fsize是零?求大神指教 |