Browse Source

Add: tc_file listDirectory add ignoreHide

ruanshudong 2 years ago
parent
commit
31272c63cb
2 changed files with 10 additions and 6 deletions
  1. 3 2
      util/include/util/tc_file.h
  2. 7 4
      util/src/tc_file.cpp

+ 3 - 2
util/include/util/tc_file.h

@@ -277,14 +277,15 @@ public:
 #endif
 
 	/**
-	 * @brief 遍历目录, 获取目录下面的所有文件和子目录.
+	 * @brief 遍历目录, 获取目录下面的所有文件和子目录(不包含默认的 . 和 .. ).
 	 *
 	 * @param path       需要遍历的路径
 	 * @param files      目标路径下面所有文件
 	 * @param bRecursive 是否递归子目录
+	 * @param ignoreHide 以 . 开头的隐藏文件是否忽略(linux有效)
 	 *
 	 **/
-	static void listDirectory(const string &path, vector<string> &files, bool bRecursive);
+	static void listDirectory(const string &path, vector<string> &files, bool bRecursive, bool ignoreHide = false);
 
 	/**
 	* @brief 复制文件或目录.

+ 7 - 4
util/src/tc_file.cpp

@@ -601,7 +601,7 @@ size_t TC_File::scanDir(const string &sFilePath, vector<string> &vtMatchFiles, F
 }
 #endif 
 
-void TC_File::listDirectory(const string &path, vector<string> &files, bool bRecursive)
+void TC_File::listDirectory(const string &path, vector<string> &files, bool bRecursive, bool ignoreHide)
 {
 #if TARGET_PLATFORM_LINUX || TARGET_PLATFORM_IOS
     vector<string> tf;
@@ -612,14 +612,17 @@ void TC_File::listDirectory(const string &path, vector<string> &files, bool bRec
         if(tf[i] == "." || tf[i] == "..")
             continue;
 
-        string s = path + FILE_SEP + tf[i];
+		if (ignoreHide && tf[i].at(0) == '.')
+			continue;
+
+		string s = path + FILE_SEP + tf[i];
 
         if(isFileExist(s, S_IFDIR))
         {
             files.push_back(simplifyDirectory(s));
             if(bRecursive)
             {
-                listDirectory(s, files, bRecursive);
+                listDirectory(s, files, bRecursive, ignoreHide);
             }
         }
         else
@@ -645,7 +648,7 @@ void TC_File::listDirectory(const string &path, vector<string> &files, bool bRec
 				files.push_back(simplifyDirectory(s));
 				if (bRecursive)
 				{
-					listDirectory(s, files, bRecursive);
+					listDirectory(s, files, bRecursive, ignoreHide);
 				}				
 			}
 			else