Index: trunk/ab5.0/jenga/include/common/FileSystem.h
===================================================================
--- trunk/ab5.0/jenga/include/common/FileSystem.h	(revision 694)
+++ trunk/ab5.0/jenga/include/common/FileSystem.h	(revision 694)
@@ -0,0 +1,13 @@
+#pragma once
+
+namespace Jenga{ namespace Common{
+
+
+class FileSystem
+{
+public:
+	static void SearchFiles( Jenga::Common::Strings &resultOfFullPath, const std::string &findStr, bool isNeedDirResults = false );
+};
+
+
+}}
Index: trunk/ab5.0/jenga/include/jenga.h
===================================================================
--- trunk/ab5.0/jenga/include/jenga.h	(revision 680)
+++ trunk/ab5.0/jenga/include/jenga.h	(revision 694)
@@ -10,4 +10,5 @@
 #include "common/Exception.h"
 #include "common/File.h"
+#include "common/FileSystem.h"
 #include "common/Hashmap.h"
 #include "common/Path.h"
Index: trunk/ab5.0/jenga/projects/jenga/jenga.vcproj
===================================================================
--- trunk/ab5.0/jenga/projects/jenga/jenga.vcproj	(revision 680)
+++ trunk/ab5.0/jenga/projects/jenga/jenga.vcproj	(revision 694)
@@ -295,4 +295,8 @@
 			<File
 				RelativePath="..\..\src\common\Exception.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\src\common\FileSystem.cpp"
 				>
 			</File>
@@ -384,4 +388,8 @@
 			</File>
 			<File
+				RelativePath="..\..\include\common\FileSystem.h"
+				>
+			</File>
+			<File
 				RelativePath="..\..\include\common\Hashmap.h"
 				>
Index: trunk/ab5.0/jenga/src/common/Directory.cpp
===================================================================
--- trunk/ab5.0/jenga/src/common/Directory.cpp	(revision 680)
+++ trunk/ab5.0/jenga/src/common/Directory.cpp	(revision 694)
@@ -141,6 +141,4 @@
 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 );
Index: trunk/ab5.0/jenga/src/common/FileSystem.cpp
===================================================================
--- trunk/ab5.0/jenga/src/common/FileSystem.cpp	(revision 694)
+++ trunk/ab5.0/jenga/src/common/FileSystem.cpp	(revision 694)
@@ -0,0 +1,40 @@
+#include "stdafx.h"
+
+void Jenga::Common::FileSystem::SearchFiles( Jenga::Common::Strings &resultOfFullPath, const std::string &findStr, bool isNeedDirResults )
+{
+	// '/' → '\\'
+	std::string tempFindStr = findStr;
+	Jenga::Common::StringReplace( tempFindStr, "/", "\\" );
+
+	WIN32_FIND_DATA wfd;
+	HANDLE hFind=FindFirstFile( tempFindStr.c_str(), &wfd );
+
+	Jenga::Common::Path path( tempFindStr );
+	std::string dirPath = path.GetDriveName() + path.GetDirName();
+	if( !dirPath.empty() && dirPath[dirPath.size()-1] == '\\' )
+	{
+		dirPath = dirPath.substr( 0, dirPath.size() - 1 );
+	}
+
+	if( hFind != INVALID_HANDLE_VALUE )
+	{
+		do
+		{
+			if( wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ) 
+			{
+				// ディレクトリのとき
+				if( isNeedDirResults )
+				{
+					resultOfFullPath.push_back( dirPath + "\\" + wfd.cFileName );
+				}
+			}
+			else
+			{
+				//ファイルのとき
+				resultOfFullPath.push_back( dirPath + "\\" + wfd.cFileName );
+			}
+		} while( FindNextFile( hFind, &wfd ) );
+
+		FindClose( hFind );
+	}
+}
