我用: mCmdParam.Create.mPathName[0] = '/'; mCmdParam.Create.mPathName[1] = 'W'; mCmdParam.Create.mPathName[2] = 'J'; mCmdParam.Create.mPathName[3] = '1'; mCmdParam.Create.mPathName[4] = '\0'; 這種形式復(fù)制文件名就可以刪除, 用: strcpy(mCmdParam.Create.mPathName,FileName); 這個語句建立的文件就不能刪除, 到底錯在哪里?
這可能是C語言問題,在C語言中strcpy這個函數(shù)拷貝時會把"\0"給拷貝過去。比如說你的文件名是 01234567 你只要拷貝8個字節(jié)就OK了。但是你用strcpy就會拷貝9個字節(jié)。簡單點說就是可能你不能簡單的用strcpy來復(fù)制文件名。 另外 mCmdParam.Create.mPathName[0] = '/';->不應(yīng)該出現(xiàn)在文件名中吧? mCmdParam.Create.mPathName[1] = 'W'; mCmdParam.Create.mPathName[2] = 'J'; mCmdParam.Create.mPathName[3] = '1'; mCmdParam.Create.mPathName[4] = '\0';在文件名中未使用的部分應(yīng)該用空格填充,'\0'是不應(yīng)該出現(xiàn)的。
上面的第一種復(fù)值方式是完全正確的,而第2種方式不能刪除的話,那就需要看你的FileName里面的復(fù)值是什么形式的了
估計是第二種FileName里面沒有路徑吧! 第一種: mCmdParam.Create.mPathName[0] = '/'; 就相當(dāng)于增加了路徑,表示在當(dāng)前路徑下,建立文件! 這個是我的理解
謝謝樓上 各位了,我再看看