獲取資料夾下所有檔案 findnext 崩潰

2021-09-19 07:09:18 字數 728 閱讀 8379

最近在工作中,需要獲取指定資料夾下的所有檔名,參考所查檔案,寫了個函式,在本地能成功。但編譯打版,在伺服器報錯。

最終除錯發現,在win10中,使用檔案遍歷函式_findnext會報0xc0000005錯誤 

原因: 

_findnext()第乙個引數」路徑控制代碼」,返回的型別為intptr_t(long long),如果定義為long,在win7中是沒有問題,但是在win10中就要改為long long或者intptr_t

static void getfiles(string path, vector& files)

//如果不是,加入列表

else

} while (_findnext(hfile, &fileinfo) == 0);

//_findclose函式結束查詢

方案一:修改引數型別  long  ---> intptr_t

intptr_t hfile = 0;
方案二:採用boost庫函式

#include static void getfiles(string path, vector& files)}}

}

獲取資料夾下所有檔案

ming xi path r c users administrator.carlos pc desktop 國防專利局 all tables 繳費明細表 彙總的繳費明細表 繳費明細表.xlsx decode utf 8 def get file path file dir,file type xl...

c 獲取資料夾下所有檔案

用c 獲取指定資料夾下的所有檔案,包括子資料夾裡的檔案。void getallfiles string path,list allfiles,bool includesubdir else while findnext hfile,fileinfo 0 findclose hfile 函式引數解釋 ...

Windows CMD獲取資料夾下所有檔名的方法

要獲取目錄下目錄名稱的方法有兩個,如下 tree 顯示磁碟目錄結構命令 功能 顯示指定驅動器上所有目錄路徑和這些目錄下的所有檔名。格式 tree 碟符 目錄 f a 使用說明 tree d f c users username desktop directory list.txtdir命令引數說明如...