|  | @@ -143,6 +143,47 @@ bool Directory::Load(const char* name)
 | 
	
		
			
				|  |  |    return _findclose(srchHandle) != -1;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +unsigned long Directory::GetNumberOfFilesInDirectory(const char* name)
 | 
	
		
			
				|  |  | +{
 | 
	
		
			
				|  |  | +#if _MSC_VER < 1300
 | 
	
		
			
				|  |  | +  long srchHandle;
 | 
	
		
			
				|  |  | +#else
 | 
	
		
			
				|  |  | +  intptr_t srchHandle;
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +  char* buf;
 | 
	
		
			
				|  |  | +  size_t n = strlen(name);
 | 
	
		
			
				|  |  | +  if ( name[n - 1] == '/' )
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +    buf = new char[n + 1 + 1];
 | 
	
		
			
				|  |  | +    sprintf(buf, "%s*", name);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  else
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +    buf = new char[n + 2 + 1];
 | 
	
		
			
				|  |  | +    sprintf(buf, "%s/*", name);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  struct _finddata_t data;      // data of current file
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  // Now put them into the file array
 | 
	
		
			
				|  |  | +  srchHandle = _findfirst(buf, &data);
 | 
	
		
			
				|  |  | +  delete [] buf;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  if ( srchHandle == -1 )
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +    return 0;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  // Loop through names
 | 
	
		
			
				|  |  | +  unsigned long count = 0;
 | 
	
		
			
				|  |  | +  do
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +    count++;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  while ( _findnext(srchHandle, &data) != -1 );
 | 
	
		
			
				|  |  | +  _findclose(srchHandle);
 | 
	
		
			
				|  |  | +  return count;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  } // namespace KWSYS_NAMESPACE
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #else
 | 
	
	
		
			
				|  | @@ -174,6 +215,24 @@ bool Directory::Load(const char* name)
 | 
	
		
			
				|  |  |    return 1;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +unsigned long Directory::GetNumberOfFilesInDirectory(const char* name)
 | 
	
		
			
				|  |  | +{
 | 
	
		
			
				|  |  | +  DIR* dir = opendir(name);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  if (!dir)
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +    return 0;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  unsigned long count = 0;
 | 
	
		
			
				|  |  | +  for (dirent* d = readdir(dir); d; d = readdir(dir) )
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +    count++;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  closedir(dir);
 | 
	
		
			
				|  |  | +  return count;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  } // namespace KWSYS_NAMESPACE
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #endif
 |