环境:.net2005,C++托管工程
假设:在C盘的A目录下有3个文件:1.c,2.c,3.c
然后调用Test时候,传递参数为C:\A
int Test(DirectoryInfo^ directory)
{
int i;
bool result; array<FileInfo^>^fileInfoArray = directory->GetFiles("*.c");
for(i=0;i<fileInfoArray->GetLength(0);i++){
result = holteckTest(fileInfoArray[i]); //在这个函数里面会启动另一个进程来运行一个程序,当这个进程结束时该函数才返回.
if(result)
hitechTest(fileInfoArray[i]); //在这个函数里面会启动另一个进程来运行一个程序,当这个进程结束时该函数才返回.
}
array<DirectoryInfo^>^directoryInfoArray = directory->GetDirectories();
for(i=0;i<directoryInfoArray->GetLength(0);i++) //递归调用遍历该目录下的所有子目录
Test(directoryInfoArray[i]);
}
补充:在调用holteckTest函数时,会启动另一个进程来运行一个程序,而这个程序会生成某个临时文件,用完后在删除.比如对1.c进行调用时,
会生成临时文件1_cpp.c.现象:按道理Test只会对1.c,2.c,3.c进行遍历,但是运行时发现有时候会对生成的临时文件也进行遍历,但是这个代码是先调用
directory->GetFiles("*.c");获得当前目录下的所有文件,然后通过循环进行遍历,即使在这个过程中有生成临时文件,那么也不会
被遍历到,但实际上确实被遍历到了,这个到底是怎么回事?????
假设:在C盘的A目录下有3个文件:1.c,2.c,3.c
然后调用Test时候,传递参数为C:\A
int Test(DirectoryInfo^ directory)
{
int i;
bool result; array<FileInfo^>^fileInfoArray = directory->GetFiles("*.c");
for(i=0;i<fileInfoArray->GetLength(0);i++){
result = holteckTest(fileInfoArray[i]); //在这个函数里面会启动另一个进程来运行一个程序,当这个进程结束时该函数才返回.
if(result)
hitechTest(fileInfoArray[i]); //在这个函数里面会启动另一个进程来运行一个程序,当这个进程结束时该函数才返回.
}
array<DirectoryInfo^>^directoryInfoArray = directory->GetDirectories();
for(i=0;i<directoryInfoArray->GetLength(0);i++) //递归调用遍历该目录下的所有子目录
Test(directoryInfoArray[i]);
}
补充:在调用holteckTest函数时,会启动另一个进程来运行一个程序,而这个程序会生成某个临时文件,用完后在删除.比如对1.c进行调用时,
会生成临时文件1_cpp.c.现象:按道理Test只会对1.c,2.c,3.c进行遍历,但是运行时发现有时候会对生成的临时文件也进行遍历,但是这个代码是先调用
directory->GetFiles("*.c");获得当前目录下的所有文件,然后通过循环进行遍历,即使在这个过程中有生成临时文件,那么也不会
被遍历到,但实际上确实被遍历到了,这个到底是怎么回事?????
什么叫又获得了*.c去遍历,我是先获得所有.c然后再用for循环遍历的