[求助] 创建目录的问题?

51如何创建目录? 我copy(mPathName, "abc/dat.dat"), creat后返回ERR_MISS_DIR,即是没有该abc目录。没有创建目录的指令?类似于creat file函数?

我手动创建了目录F080709,然后往/F080709/D16.DAT写数写不进去,连D16.DAT文件都没有建。奇怪?

(1)库里面没有直接创建目录的,目录的创建方法可以参考EXAM9 (2)把D16.DAT文件创建的过程贴出来看看


创建D16.DAT的代码如下,其中DateTime[]中是年月日小时的BCD码。就是上面的08 07 09 16(08年7月9日16点)。我手动创建了D080709文件目录,然后执行下面代码。结果D16.DAT创建失败。执行i=CH375FileCreate()返回也对了,就是文件夹目录里没有D16.DAT文件。

//----------------------- sprintf(mCmdParam.Open.mPathName, "/F%02bx%02bx%02bx/D%02bx.DAT", DateTime[0], DateTime[1], DateTime[2], DateTime[3]); i = CH375FileOpen(); if(i == ERR_SUCCESS) // 文件打开 { mCmdParam.Locate.mSectorOffset = 0xFFFFFFFF; i = CH375FileLocate(); mStopIfError(i);

resDataNum = CH375vFileSize & (CH375vSectorSize - 1);

CH375vFileSize += CH375vSectorSize - 1; mCmdParam.Read.mSectorCount = 1; mCmdParam.ReadX.mDataBuffer = &my_buffer[0]; // - resDataNum; i = CH375FileReadX(); mStopIfError(i); CH375vFileSize -= CH375vSectorSize - 1; mCopyXRAMtoXRAM(&my_buffer[1024] - resDataNum, &my_buffer[0], resDataNum); mCmdParam.Locate.mSectorOffset = 0xFFFFFFFF; i = CH375FileLocate(); mStopIfError(i); } /* else if(i == ERR_MISS_DIR) // 目录不存在 { sprintf(mCmdParam.DirCreate.mPathName, "/F%02bx%02bx%02bx", DateTime[0], DateTime[1], DateTime[2]);

} */ else if(i == ERR_MISS_FILE) // 文件不存在 { LED_WR_ACT(); i = CH375FileCreate(); mStopIfError(i); SendString("File Created \n"); resDataNum = 0; } else // 其他错误 { mStopIfError(i); }


参照exam9, 搞定。呵呵~~~ 谢谢!


可以创建的,只是不知道DateTime[0]-DateTime[3]是如何赋值的 试验时,其赋值如下即可: DateTime[0] = 0x08; DateTime[1] = 0x07; DateTime[2] = 0x09; DateTime[3] = 0x16;


对 啊, 就是那样的。 好像是在目录下创建文件前先要打开目录? 不过我参照exam9后创建的目录又可以在目录下创建文件了。


不需要打开目录,下面是实验的程序: DateTime[0] = 0x08; DateTime[1] = 0x07; DateTime[2] = 0x09; DateTime[3] = 0x16;

sprintf(mCmdParam.Open.mPathName, "/F%02bx%02bx%02bx/D%02bx.DAT", DateTime[0], DateTime[1], DateTime[2], DateTime[3]); printf("%s\n",mCmdParam.Open.mPathName ); i = CH375FileOpen(); if(i == ERR_SUCCESS) // 文件打开 { mCmdParam.Locate.mSectorOffset = 0xFFFFFFFF; i = CH375FileLocate(); mStopIfError(i);

// resDataNum = CH375vFileSize & (CH375vSectorSize - 1); CH375vFileSize += CH375vSectorSize - 1; mCmdParam.Read.mSectorCount = 1; mCmdParam.ReadX.mDataBuffer = &my_buffer[0]; // - resDataNum; i = CH375FileReadX(); mStopIfError(i); CH375vFileSize -= CH375vSectorSize - 1; // mCopyXRAMtoXRAM(&my_buffer[1024] - resDataNum, &my_buffer[0], resDataNum); mCmdParam.Locate.mSectorOffset = 0xFFFFFFFF; i = CH375FileLocate(); mStopIfError(i); } /* else if(i == ERR_MISS_DIR) // 目录不存在 { sprintf(mCmdParam.DirCreate.mPathName, "/F%02bx%02bx%02bx", DateTime[0], DateTime[1], DateTime[2]);

} */ else if(i == ERR_MISS_FILE) // 文件不存在 { printf("create\n"); LED_WR_ACT(); i = CH375FileCreate(); mStopIfError(i); // SendString("File Created \n"); // resDataNum = 0; } else // 其他错误 { mStopIfError(i); }


您这个是手动建了文件夹后再建文件的么?


是的,照着你2楼中的说明做的


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