google搜索 51Testing站内搜索                    软件测试门户 | 软件测试培 训 | 文章资料精选 | 软件测试论坛 | 软件测试博客 | 测试招聘求职 
打印

Loadrunner的C函数中怎么没有找到遍历文件的命令

Loadrunner的C函数中怎么没有找到遍历文件的命令


我需要找到目录下的文件名,但是没有发现有这个C的函数,大家帮一下忙啊。

[ Last edited by wqsqiushi on 2004-12-2 at 13:59 ]

TOP

pcl_scott兄,一定要帮助我啊。

TOP

版主呢,人呢.偶哭死了,

TOP

不好意思,最近特别忙,所以问题回答得不及时!
lr中没有提供文件遍历函数,但是可以扩展脚本实现你需要的函数功能
win32中提供了findfilefirst findfilenext等api函数,你可以加载api函数实现你要的功能

lr中先用lr_load_dll加载包含该api函数的dll,然后直接使用就可以了,下边是lr中提供的一个例子:
lr_load_dll("user32.dll");
MessageBoxA(NULL, "This is the message body", "message_caption", 0);


下边是封装后的函数代码例子,没有经过调试,你把他用dll封装好,然后再lr中调用就可以了!
void FindFileInDir(char* rootDir, char* strRet)

{

    char fname[MAC_FILENAMELENOPATH];

    ZeroMemory(fname, MAC_FILENAMELENOPATH);



    WIN32_FIND_DATA fd;

    ZeroMemory(&fd, sizeof(WIN32_FIND_DATA));



    HANDLE hSearch;

    char filePathName[256];

    char tmpPath[256];

    ZeroMemory(filePathName, 256);

    ZeroMemory(tmpPath, 256);



    strcpy(filePathName, rootDir);



    BOOL bSearchFinished = FALSE;



    if( filePathName[strlen(filePathName) -1] != '\\' )

    {

       strcat(filePathName, "\\");

    }



    strcat(filePathName, "*");



    hSearch = FindFirstFile(filePathName, &fd);



    //Is directory

    if( (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)

       && strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..") )      

    {

       strcpy(tmpPath, rootDir);

       strcat(tmpPath, fd.cFileName);

       FindFileInDir(tmpPath, strRet);

    }

   

    else   if( strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..") )

              {

                  sprintf(fname, "%-50.50s", fd.cFileName);

                  strcat(strRet + strRet[strlen(strRet)] , fname);

              }



    while( !bSearchFinished )

    {

       if( FindNextFile(hSearch, &fd) )

       {

           if( (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)

              && strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..") )      

           {

              strcpy(tmpPath, rootDir);

              strcat(tmpPath, fd.cFileName);

              FindFileInDir(tmpPath, strRet);

           }

   

           else   if( strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..") )

                     {

                         sprintf(fname, "%-50.50s", fd.cFileName);

                         strcat(strRet + strRet[strlen(strRet)] , fname);

                     }

       }

       else

       {

           if( GetLastError() == ERROR_NO_MORE_FILES )          //Normal Finished

           {

              bSearchFinished = TRUE;

           }

           else

              bSearchFinished = TRUE;     //Terminate Search

       }

    }



    FindClose(hSearch);

   

}

TOP

非常感谢,这些资料不多,可以说很宝贵了,我先前实在没办法是用
dir *.*/w > 1.txt
然后又打开1.txt得到的文件名,但是效率肯定低了。

TOP

多谢pcl2004_27~
我以前也碰到过这种类似的情况,有些函数loadrunner中没有,当初就没有想到通过load dll的方式来实现,而是直接在loadrunner中再编写一个实现这个函数功能的一般函数来实现,实在是劳民伤财,效率也不高啊!

TOP

好强啊!
崇拜感油然而生!!

TOP

您好,请问哪里可以下载一些测试软件呢

TOP

您好,请问哪里可以下载一些测试软件呢?谢谢!:d

TOP

求助


pcl2004_27
你好,能讲解一些关于VS.NET2003中LoadRunnerUser的运用吗?刚接触无从下手。

TOP

收藏,越来越佩服斑竹了,呵呵 :)

TOP

真是佩服啊!!!!!!!!!!

TOP

斑竹很牛啊!!!

TOP

最近正好用到这方面的内容,受益匪浅!!谢谢斑竹!!!

TOP

很好,测试也需要编程知识

TOP

的确厉害!
瞬间的感动,原来 感动的只是自己.......

TOP

开拓了思路啊!

TOP

不错,受益菲浅,最近正在学这些sdlkfj5 sdlkfj9
爱测试,爱人生

TOP

sdlkfj5 强!
虚度了很多时间,现在迷茫中……

TOP

佩服佩服

TOP

 
当前时区 GMT+8, 现在时间是 2008-10-13 00:31Copyright(C)上海博为峰软件技术有限公司 2001-2007 电话:021-64471599-8017
当您在访问网站、论坛及博客过程中遇到问题时可发送email:webmaster@51testing.com或发送论坛短信至管理员风在吹