1. 程式人生 > >C++使用萬用字元查詢檔案(FindFirstFile)

C++使用萬用字元查詢檔案(FindFirstFile)

      Windows下搜尋檔案的萬用字元包括 * (匹配任意字串), ? (匹配單個字元),以及字串本身,如ABC即匹配ABC,123匹配123。通過這些萬用字元的結合使用,呼叫 FindFirstFile 和 FindNextFile 即可搜尋某個目錄下的相應檔案。

      相關的C++程式碼如下:

BOOL SearchFilesByWildcard(WCHAR *wildcardPath)
{
	HANDLE hFile = INVALID_HANDLE_VALUE; 
	WIN32_FIND_DATA pNextInfo;  

	hFile = FindFirstFile(wildcardPath,&pNextInfo); 
	if(INVALID_HANDLE_VALUE == hFile)  
	{  
		return FALSE;  
	}  

	WCHAR infPath[MAX_PATH] = {0};
	if(pNextInfo.cFileName[0] != '.')
	{
		printf("Find result = %ws\r\n",pNextInfo.cFileName);
	}

	while(FindNextFile(hFile,&pNextInfo))  
	{  
		if(pNextInfo.cFileName[0] == '.')
		{
			continue;  
		}

		printf("Find result = %ws\r\n",pNextInfo.cFileName);
	}

	return FALSE;
}

int main(int argc,char* argv[])
{
	setlocale(LC_ALL,"chs");

	//查詢 abc開頭的txt檔案
	printf("Search 1:\r\n");
	SearchFilesByWildcard(L"E:\\Test\\abc*.txt");
	printf("\r\n");

	//查詢 abc開頭的檔案
	printf("Search 2:\r\n");
	SearchFilesByWildcard(L"E:\\Test\\abc*");
	printf("\r\n");

	//查詢jnt檔案
	printf("Search 3:\r\n");
	SearchFilesByWildcard(L"E:\\Test\\*.jnt");
	printf("\r\n");

	//查詢檔名為4個字元的txt檔案
	printf("Search 4:\r\n");
	SearchFilesByWildcard(L"E:\\Test\\????.txt");
	printf("\r\n");

	//查詢包含"檔案"的檔案
	printf("Search 5:\r\n");
	SearchFilesByWildcard(L"E:\\Test\\*檔案*");
	printf("\r\n");

	getchar();
	return 0;
}
        測試目錄和執行結果如下:

        

        

相關推薦

C++使用字元查詢檔案(FindFirstFile)

      Windows下搜尋檔案的萬用字元包括 * (匹配任意字串), ? (匹配單個字元),以及字串本身,如ABC即匹配ABC,123匹配123。通過這些萬用字元的結合使用,呼叫 FindFirstFile 和 FindNextFile 即可搜尋某個目錄下的相應檔案。

java通過字元查詢檔案

package com.ym.test.file; import java.io.*; import java.util.ArrayList; import java.util.regex.Matcher; import java.util.regex.Pattern;

Delphi 支援字元刪除檔案

procedure DeleteFileEx(FileName:string); var     FileDir:string;     FileStruct:TSHFileOpStruct; begin     FileDir   :=  FileName;// 'C:\

Python 字元刪除檔案

# -*- coding: utf-8 -*- """ 使用萬用字元,獲取所有檔案,或進行操作。 """ import glob import os def files(curr_dir = '.', ext = '*.exe'): """當前目錄下的

R語言之grep函式和正則字元查詢 [

在R語言的道路上又學到了一個新知識,記下來一起分享! 首先,grep函式可以像資料庫查詢一樣對向量中的具有特定條件的元素進行查詢! 其次,介紹幾種R語言中的正則萬用字元: (1)“^”匹配一個字串的開始,比如sub("^a","",c("abcd","dcba")),表示將開頭為a的字串。如果要將開頭的一個

R語言之grep函式和正則字元查詢

在R語言的道路上又學到了一個新知識,記下來一起分享! 首先,grep函式可以像資料庫查詢一樣對向量中的具有特定條件的元素進行查詢! 其次,介紹幾種R語言中的正則萬用字元: (1)“^”匹配一個字串的開始,比如sub("^a","",c("abcd","dcba")),表

Java 字元匹配查詢檔案

============================= 字串匹配例子      String s = "*txt.*";      s = s.replace('.', '#');      s = s.replaceAll("#", "////.");      s =

Elasticsearch中的字元及正則表示式查詢

想要在ES中使用*或者?作為萬用字元進行模糊匹配? 看這篇就對了~ 本文為轉發!!! 轉自:https://blog.csdn.net/dm_vincent/article/details/42024799 wildcard查詢和prefix查詢類似,也是一個基於詞

模糊查詢支援引數中有*和?這樣的sql字元

if(val.getPlateNo()!=null && !"".equals(val.getPlateNo())) {             String plateNo = val.getPlateNo();             if(plateNo

elasticsearch-wildcard、regexp字元與正則表示式查詢

萬用字元與正則表示式查詢 假設將郵編作為 not_analyzed 的精確值欄位索引,所以可以為其建立索引,如下: PUT /my_index { "mappings": { "address": { "properties

字串字元/華為機試(C/C++)

題目描述 問題描述:在計算機中,萬用字元一種特殊語法,廣泛應用於檔案搜尋、資料庫、正則表示式等領域。現要求各位實現字串萬用字元的演算法。 要求: 實現如下2個萬用字元: *:匹配0個或以上的字元(字元由英文字母和數字0-9組成,不區分大小寫。下同) ?:匹配1個字元 輸

命令列擴充套件及檔案字元

一、命令列擴充套件:$()或` ` echo "This system's name is $(hostname)" echo echo "This system's name is `hostname`" 以上兩句輸出效果相同 "" 或 '' 或` `之間

正則化與字元便於查詢和替換批量處理,使用在word,notepad++等文字編輯器中

我們常常使用查詢替換的方式來處理相關資料,可是當你要批量替換隻用一些相同字元分文字時,就會顯得很笨拙。 比如:     Line 5974: DI 10.13182/NT96-A15844     Line 6078: DI 10.1109/ISIC.1996.55623

mysql字元進行模糊查詢

在mysql資料庫中,當我們需要模糊查詢的時候 ,我們會使用到萬用字元。 首先我們來了解一下2個概念,一個是操作符,一個是萬用字元。 操作符 like就是SQL語句中的操作符,它的作用是指示在SQL語句後面的搜尋模式是利用萬用字元而不是直接相等匹配進行比較。 注意:如果使用like操作符時沒有使用萬用

MySQL:05---DQL單表查詢(指定、多條件、between..and、like字元、空值、limit、去重合並查詢

一、查詢指定欄位 1. 查詢所有欄位 select  *  from  表名; 2.查詢指定欄位 select  欄位1,欄位2...   from  表名; 二、條件查詢 概念:條件查詢可通過wher

linux|批量建立檔案、資料夾或刪除——字元

前言: 在關於檔案操作的部分,我們之前學到的一些有趣的命令。它有一個問題就是一次只能在一個檔案上執行,效率不高。那麼萬用字元就派上用場了!!! 萬用字元是什麼: 萬用字

在mySQl中,SQL語言允許使用字元進行字串匹配的操作,其中“%”不能表示()。A.0個字元B.一個字元C.多個字元D.搜尋關鍵字中包含字元“%”

加粗樣式@TOC 歡迎使用Markdown編輯器 你好! 這是你第一次使用 Markdown編輯器 所展示的歡迎頁。如果你想學習如何使用Markdown編輯器, 可以仔細閱讀這篇文章,瞭解一下Markdown的基本語法知識。 新的改變 我們對Markdown編輯

HDFS之globStatus()函式(字元匹配製定模式的路徑)liststatus() (列出目錄下的所有檔案

Globstatus.java import java.io.IOException; import java.net.URI; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.

Struts2字元進行模糊分頁查詢

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <%@ taglib prefix="s" uri="/struts-tags" %> <!DO

Oracle中like模糊查詢字元

like 模糊查詢 我們只知道個別字母或者欄位,不太確定要查詢的準確資訊時,可以使用模糊查詢(即like),查詢出所有與自己已知的"零碎"資訊有關的全部資訊。 這就要用的like模糊查詢了,其萬用字