请指教,我写了下面一段创建文件夹的代码,文件夹有两层结构"Temporary"下面还有六个子文件夹"ImageSet0"--"ImageSet5"。当文件夹生成之后,我手动删除,再次创建会有问题。不知道为什么,请大虾们给点建议,看看我的代码有什么问题?谢谢!HRESULT FMRITempDB::CreateTempFile()
{
try
{ // Create "Temporary" folder
csTempPath = _T("E:\\Temporary");
bRes = ::CreateDirectory( csTempPath, NULL );
if ( FALSE == bRes )
{
return E_FAIL;
} for ( i = 0; i <= 5; i++ )
{
CString csNum.Fomat( _T("%d"), i );
CString csImgPath = csTempPath + _T("\\ImageSet") + csNum; bRes = ::CreateDirectory( csImgPath, NULL );
if ( FALSE == bRes )
{
return E_FAIL;
}
}
return S_OK;
}
catch (...)
{
return E_FAIL;
}
}
{
try
{ // Create "Temporary" folder
csTempPath = _T("E:\\Temporary");
bRes = ::CreateDirectory( csTempPath, NULL );
if ( FALSE == bRes )
{
return E_FAIL;
} for ( i = 0; i <= 5; i++ )
{
CString csNum.Fomat( _T("%d"), i );
CString csImgPath = csTempPath + _T("\\ImageSet") + csNum; bRes = ::CreateDirectory( csImgPath, NULL );
if ( FALSE == bRes )
{
return E_FAIL;
}
}
return S_OK;
}
catch (...)
{
return E_FAIL;
}
}
可以这样用??
CString csNum.Fomat(_T("%d"), i);
不可以在声明的时候直接用,我原先的代码比较长,我节选了其中主要的部分,但是有些变量的声明就没有了,我为了方便,就直接入上面所写了,所以请大家见谅。To:handsomerun
创建时可能会出现错误,但不稳定,也就是说有的时候有错,有的时候做同样的操作就没有错误了。跟踪不到出现错误的地方。只是看event log显示创建文件的地方出错了。
在我的程序里面启动了两个线程,会不会与这个有关。STA与MTA有关系么?
csNum.Format( _T("%d"), i );反复按照楼主的方法运行也没问题
代码是没有问题TO:handsomerun
就是一个MTA线程对文件夹进行操作。与超线程有没有关系呢?
把出错code弄出来