最新公告
  • 欢迎您光临波比源码,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • windows linux―unix 跨平台通信集成控制系统—-文件搜索

    跨平台的网络通讯,跟装备的集成控制,牵扯到在各种平台下的文件搜索问题,windows下面的已有了。

    地址以下:

    http://blog.csdn.net/wangyaninglm/article/details/8668132

     

    这篇文章主要介绍1下linux下面的文件搜索实现:

    Filesearch.h

    //
    // Filesearch.h
    // //
    // Created by mac mac on 13⑷⑵8.
    // Copyright (c) 2013年 __MyCompanyName__. All rights reserved.
    //

    #ifndef _Filesearch_h
    #define _Filesearch_h

    //#include <stdio.h>
    //#include <stdlib.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <dirent.h>
    #include <pwd.h>
    #include <unistd.h>
    //#include <string.h>
    #include <time.h>
    #include "mac.h"
    #include "Socket.h"

    //#define MAX_PATH 255

    int IsDir(char *name);

    void Search_File(char *path,char *name);

    //int search_flag = 0;

    /*
    int main(int argc , char *argv[])
    {
    static char *current_dir;
    static char *file_name;
    int length;

    if(argc==1)
    {
    printf("it takes more parameter!!!n");

    }

    if(argc==2)
    {
    current_dir = (char *)getcwd(current_dir,MAX_PATH);
    }

    if(argc==3)
    {
    length = strlen(argv[1]);

    if(length>1 && (argv[1][length⑴]=='/'))
    {
    argv[1][length⑴]=='?';

    }
    current_dir = argv[1];
    file_name = argv[2];
    }

    Search_File(current_dir,file_name);

    printf("Hello world!n");
    return 0;
    }

    */

    #endif

    Filesearch.cpp:

    //
    // Filesearch.cpp
    // mac_client
    //
    // Created by mac mac on 13⑸⑵1.
    // Copyright (c) 2013年 __MyCompanyName__. All rights reserved.
    //
    #include <stdio.h>
    #include <iostream>
    #include "Filesearch.h"

    int search_flag = 0;

    int IsDir(char *name)
    {
    struct stat buff;

    if(lstat(name,&buff)<0)
    return 0;

    return S_ISDIR(buff.st_mode);

    }

    //调用的时候直接使用'/'目录作为搜索路径,相当于搜索全盘了。

    void Search_File(char *path,char *name)
    {
    DIR *directory;
    struct dirent *dir_entry;
    char buffer[MAX_PATH];

    if((directory = opendir(path)) == NULL)
    {
    fprintf(stderr,"%s",path);
    printf(path);
    perror(" ");
    return;
    }

    while(dir_entry == readdir(directory))
    {
    if(!strcmp(dir_entry->d_name,".")||!strcmp(dir_entry->d_name,".."))
    {
    //do nothing
    }
    else
    {
    if((strcmp(path,"/")) == 0)
    {
    sprintf(buffer,"%s%s",path,dir_entry->d_name);
    // printf(buffer);
    /* if is not boot directory do not add "/"*/

    }
    else
    {
    sprintf(buffer,"%s/%s",path,dir_entry->d_name);
    printf(buffer);
    printf("
    ");
    }

    if(IsDir(buffer))
    {
    Search_File(buffer,name);
    }
    else
    {
    //find the file,if exist
    if(strcmp(dir_entry->d_name,name)==0)
    {
    printf("%sn",buffer);
    search_flag=1;

    }
    }
    }

    }

    closedir(directory);

    }

    void setOutFiles(const char * path)//得到指定目录下面所有文件, 传输的时候还得改
    {
    DIR *dp;
    struct dirent *dirp;
    char fullpath[MAX_PATH] = {0};
    if((dp = opendir(path)) == NULL)
    {
    //err_quit();
    return ;
    }

    if (strcmp(path,"/") == 0) //如果是根目录,要处理1下
    {
    while((dirp = readdir(dp))!= NULL)
    {

    sprintf(fullpath,"%s%s", path,dirp->d_name);
    printf("%s
    ",fullpath);

    }

    }
    else
    {

    while((dirp = readdir(dp))!= NULL)
    {

    sprintf(fullpath,"%s/%s", path,dirp->d_name);
    printf("%s
    ",fullpath);

    }
    }

    }

     

     

    波比源码 – 精品源码模版分享 | www.bobi11.com
    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
    3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

    波比源码 » windows linux―unix 跨平台通信集成控制系统—-文件搜索

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    波比源码
    一个高级程序员模板开发平台
    升级波友尊享更多特权立即升级