本帖最后由 婴儿 于 2010-12-28 14:37 编辑
1.要处理返回值,system()是写到文件中,再从文件中读出来处理的。如:
system("dir c:\\ > c:\\temp.txt"),将c盘根目录下目录和文件信息写到c:\temp.txt,再用文件函数将数据从该文件中读出进行处理,此函数用法可查LR帮助
2.同上,popen()类似,但相对方便些,不需要指定文件,所以没有关闭、删除文件这些动作。此函数在LR帮助中查不到
3.可以用打开文件的方式判断本机某目录下是否存在某文件,但打开失败不能判定该文件不存在。用dir的方式直接查找文件更合理,下面用popen()举例,查看本机c盘根目录下是否存在隐藏文件IO.SYS:
- Action()
- {
- //查找本机某目录下是否存在某文件
- char * filename = "c:\\IO.SYS";
- char command[1024],buffer[10240];
- long stream;
- sprintf(command,"dir %s /a",filename);
- //打开数据流,读取
- if ((stream = popen(command, "r")) == NULL) {
- lr_error_message ("Cannot open stream");
- return -1;
- }
- fread(buffer, sizeof(char), 10240, stream);
- if (ferror(stream))
- lr_output_message ("Error reading stream");
- lr_output_message ("%s = \n%s", command, buffer );
- //处理从数据流读取的内容
- if(strstr(buffer,"个"))
- lr_output_message ("File %s exist",filename);
- else
- lr_output_message ("File %s not exist",filename);
- return 0;
- }
复制代码 远程的更麻烦,未尝试 |