def search_file_by_str2(rootdir, strs, obj_result, o_redis, str_id): for root, dirs, files in os.walk(rootdir, followlinks=True): #for i in range(0,len(dirs)): # str_dir_temp = os.path.join(root, dirs[i]) + "\\" # #str_dir_temp = root + dirs[i] + "\\" # search_file_by_str2(str_dir_temp,strs,obj_result,o_redis,str_id) for i in range(0, len(files)): for j in range(0, len(strs)): if files[i].endswith(strs[j]): p = FileInfo() p.fileDir = root p.fileRoot = p.fileDir.split('\\')[0] p.fileName = files[i] p.fileFullPath = os.path.join(root, files[i]) p.fileExtension = strs[j] fi = os.stat(p.fileFullPath) p.fileIndex = fi.st_ino p.fileSize = int(fi.st_size) / 1024 / 1024 / 1024 p.fileRootID = str_id #封装消息 obj_result.code = 1 obj_result.msg = json_dict_to_str(p.__dict__) str_result = json_dict_to_str(obj_result.__dict__) redis_public(o_redis, str_result)
def get_my_files(rootdir, dirs, exts1, exts2, obj_result, o_redis, str_id): str_root = rootdir for str in os.listdir(str_root): str_path = (str_root + os.sep + str) if os.path.isdir(str_path): if str in dirs: p = FileInfo() p.fileDir = disk_info.getUpUpDirPath(str_path) p.fileRoot = disk_info.getRootDir(str_path) p.fileName = disk_info.getUpDir(str_path) p.fileFullPath = disk_info.getUpDirPath(str_path) p.fileExtension = "DIR" #由于是文件夹,所以没有判定文件序列、大小 #fi = os.stat(p.fileFullPath) #p.fileIndex = fi.st_ino #p.fileSize = int(fi.st_size) /1024/1024/1024 p.fileIndex = "1" p.fileSize = get_dir_file_size(p.fileFullPath) p.fileRootID = str_id #封装消息 obj_result.code = 1 obj_result.msg = json_dict_to_str(p.__dict__) str_result = json_dict_to_str(obj_result.__dict__) redis_public(o_redis, str_result) return elif os.path.isfile(str_path): str_path = str_path.lower() for ext1 in exts1: if str_path.endswith(ext1): p = FileInfo() p.fileDir = disk_info.getUpUpDirPath(str_path) p.fileRoot = disk_info.getRootDir(str_path) p.fileName = disk_info.getCurrentDir(str_path) p.fileFullPath = disk_info.getUpDirPath(str_path) p.fileExtension = ext1 #fi = os.stat(p.fileFullPath) #p.fileIndex = fi.st_ino #p.fileSize = int(fi.st_size) /1024/1024/1024 p.fileIndex = "1" p.fileSize = get_dir_file_size(p.fileFullPath) p.fileRootID = str_id #封装消息 obj_result.code = 1 obj_result.msg = json_dict_to_str(p.__dict__) str_result = json_dict_to_str(obj_result.__dict__) redis_public(o_redis, str_result) return for ext2 in exts2: if str_path.endswith(ext2): p = FileInfo() p.fileDir = disk_info.getUpDirPath(str_path) p.fileRoot = disk_info.getRootDir(str_path) p.fileName = str p.fileFullPath = str_path p.fileExtension = ext1 fi = os.stat(p.fileFullPath) p.fileIndex = fi.st_ino p.fileSize = int(fi.st_size) / 1024 / 1024 / 1024 p.fileRootID = str_id #封装消息 obj_result.code = 1 obj_result.msg = json_dict_to_str(p.__dict__) str_result = json_dict_to_str(obj_result.__dict__) redis_public(o_redis, str_result) if os.path.isdir(str_path): get_my_files(str_path, dirs, exts1, exts2, obj_result, o_redis, str_id)