Index: trunk/ab5.0/jenga/include/common/Directory.h
===================================================================
--- trunk/ab5.0/jenga/include/common/Directory.h	(revision 639)
+++ trunk/ab5.0/jenga/include/common/Directory.h	(revision 680)
@@ -18,4 +18,6 @@
 	std::string GetFullPath( const std::string &relationPath ) const;
 	std::string GetRelationalPath( const std::string &fullPath ) const;
+
+	void SearchFiles( Jenga::Common::Strings &resultOfFullPath, const std::string &findStr, bool isRecuresive = false ) const;
 };
 
Index: trunk/ab5.0/jenga/include/jenga.h
===================================================================
--- trunk/ab5.0/jenga/include/jenga.h	(revision 639)
+++ trunk/ab5.0/jenga/include/jenga.h	(revision 680)
@@ -4,4 +4,5 @@
 #include "common/BoostSerializationSupport.h"
 #include "common/CmdLine.h"
+#include "common/String.h"
 #include "common/Directory.h"
 #include "common/EasyToken.h"
@@ -12,4 +13,3 @@
 #include "common/Path.h"
 #include "common/SourceTemplate.h"
-#include "common/String.h"
 #include "common/VectorSupporter.h"
Index: trunk/ab5.0/jenga/src/common/Directory.cpp
===================================================================
--- trunk/ab5.0/jenga/src/common/Directory.cpp	(revision 639)
+++ trunk/ab5.0/jenga/src/common/Directory.cpp	(revision 680)
@@ -138,2 +138,32 @@
 	return temp;
 }
+
+void Directory::SearchFiles( Jenga::Common::Strings &resultOfFullPath, const std::string &findStr, bool isRecuresive ) const
+{
+	Jenga::Common::Strings result;
+
+	WIN32_FIND_DATA wfd;
+	HANDLE hFind=FindFirstFile( ( this->path + "\\" + findStr ).c_str(), &wfd );
+	if( hFind != INVALID_HANDLE_VALUE )
+	{
+		do
+		{
+			if( wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ) 
+			{
+				// ディレクトリのとき
+				if( isRecuresive )
+				{
+					Directory tempDir( this->path + "\\" + wfd.cFileName );
+					tempDir.SearchFiles( resultOfFullPath, findStr, isRecuresive );
+				}
+			}
+			else
+			{
+				//ファイルのとき
+				resultOfFullPath.push_back( this->path + "\\" + wfd.cFileName );
+			}
+		} while( FindNextFile( hFind, &wfd ) );
+
+		FindClose( hFind );
+	}
+}
