Index: /trunk/Include/Classes/System/IO/DirectoryInfo.ab
===================================================================
--- /trunk/Include/Classes/System/IO/DirectoryInfo.ab	(revision 405)
+++ /trunk/Include/Classes/System/IO/DirectoryInfo.ab	(revision 406)
@@ -137,5 +137,5 @@
 		Dim i As Long
 		For i = 0 To ELM(infos.Count)
-			If infos[i].Attributes = FILE_ATTRIBUTE_DIRECTORY Then
+			If (infos[i].Attributes and FileAttributes.Directory) = FileAttributes.Directory Then
 				dirs.Add(infos[i] As DirectoryInfo)
 			End If
@@ -196,5 +196,5 @@
 		Dim i As Long
 		For i = 0 To ELM(infos.Count)
-			If infos[i].Attributes <> FILE_ATTRIBUTE_DIRECTORY Then
+			If (infos[i].Attributes and FileAttributes.Directory) <> FileAttributes.Directory Then
 				files.Add(infos[i] As FileInfo)
 			End If
Index: /trunk/Include/Classes/System/IO/File.ab
===================================================================
--- /trunk/Include/Classes/System/IO/File.ab	(revision 405)
+++ /trunk/Include/Classes/System/IO/File.ab	(revision 406)
@@ -10,18 +10,18 @@
 
 Enum FileAttributes
-	Archive
-	Compressed
-	Device
-	Directory
-	Encrypted
-	Hidden
-	Normal
-	NotContentIndexed
-	Offline
-	ReadOnly
-	ReparsePoint
-	SparseFile
-	System
-	Temporary
+	Archive           = 32 'FILE_ATTRIBUTE_ARCHIVE
+	Compressed        = 2048 'FILE_ATTRIBUTE_COMPRESSED
+	Device            = 64 'FILE_ATTRIBUTE_DEVICE
+	Directory         = 16 'FILE_ATTRIBUTE_DIRECTORY
+	Encrypted         = 16384 'FILE_ATTRIBUTE_ENCRYPTED
+	Hidden            = 2 'FILE_ATTRIBUTE_HIDDEN
+	Normal            = 128 'FILE_ATTRIBUTE_NORMAL
+	NotContentIndexed = 8192 'FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
+	Offline           = 4096 'FILE_ATTRIBUTE_OFFLINE
+	ReadOnly          = 1 'FILE_ATTRIBUTE_READONLY
+	ReparsePoint      = 1024 'FILE_ATTRIBUTE_REPARSE_POINT
+	SparseFile        = 512 'FILE_ATTRIBUTE_SPARSE_FILE
+	System            = 4 'FILE_ATTRIBUTE_SYSTEM
+	Temporary         = 256 'FILE_ATTRIBUTE_TEMPORARY
 End Enum
 
Index: /trunk/Include/Classes/System/IO/FileInfo.ab
===================================================================
--- /trunk/Include/Classes/System/IO/FileInfo.ab	(revision 405)
+++ /trunk/Include/Classes/System/IO/FileInfo.ab	(revision 406)
@@ -27,5 +27,5 @@
 
 	Function IsReadOnly() As Boolean
-		If (Attributes And FILE_ATTRIBUTE_READONLY) = FILE_ATTRIBUTE_READONLY Then
+		If (Attributes and FileAttributes.ReadOnly) = FileAttributes.ReadOnly Then
 			Return True
 		Else
Index: /trunk/Include/Classes/System/IO/FileSystemInfo.ab
===================================================================
--- /trunk/Include/Classes/System/IO/FileSystemInfo.ab	(revision 405)
+++ /trunk/Include/Classes/System/IO/FileSystemInfo.ab	(revision 406)
@@ -7,5 +7,5 @@
 	m_LastAccessTime As FILETIME
 	m_LastWriteTime As FILETIME
-	m_FileAttributes As DWord
+	m_FileAttributes As FileAttributes
 
 	m_IsFreshed As Boolean
@@ -14,11 +14,26 @@
 	OriginalPath As String
 Public
+
+	/*!
+	@brief	コンストラクタ
+	@author	OverTaker
+	*/
 	Sub FileSystemInfo()
 		m_IsFreshed = False
 	End Sub
 
+	/*!
+	@brief	デストラクタ
+	@author	OverTaker
+	*/
 	Sub ~FileSystemInfo()
 	End Sub
 
+	/*!
+	@brief	値が等しいか比較する
+	@author	OverTaker
+	@param  比較するオブジェクト
+	@return 等しい場合True,そうでない場合False
+	*/
 	Override Function Equals( object As Object ) As Boolean
 		If This.ToString = object.ToString Then
@@ -29,15 +44,33 @@
 	End Function
 
+	/*!
+	@brief	文字列で表したオブジェクトを取得する
+	@author	OverTaker
+	@return オブジェクトの文字列(ファイルパス)
+	*/
 	Override Function ToString() As String
 		Return FullPath
 	End Function
 
-	'Public Properties
-	Function Attributes() As DWord'FileAttributes
+	'----------------------------------------------------------------
+	' パブリック プロパティ
+	'----------------------------------------------------------------
+
+	/*!
+	@brief	ファイルの属性を取得する
+	@author	OverTaker
+	@return ファイル属性
+	*/
+	Function Attributes() As FileAttributes
 		If Not m_IsFreshed Then Refresh()
 		Return m_FileAttributes
 	End Function
 
-	Sub Attributes(value As DWord)
+	/*!
+	@brief	ファイル属性を設定する
+	@author	OverTaker
+	@param  ファイル属性
+	*/
+	Sub Attributes(value As FileAttributes)
 		If SetFileAttributes(ToTCStr(FullPath), value) = FALSE Then
 			'Exception
@@ -46,4 +79,9 @@
 	End Sub
 
+	/*!
+	@brief	ファイル作成日を取得する
+	@author	OverTaker
+	@return ファイルの作成日
+	*/
 	Function CreationTime() As DateTime
 		If Not m_IsFreshed Then Refresh()
@@ -51,4 +89,9 @@
 	End Function
 
+	/*!
+	@brief	ファイル作成日を設定する
+	@author	OverTaker
+	@param  ファイルの作成日
+	*/
 	Sub CreationTime(ByRef value As DateTime)
 		m_CreationTime = value.ToFileTimeUtc()
@@ -56,12 +99,27 @@
 	End Sub
 
+	/*!
+	@brief	ファイル作成日をUTC時刻で取得する
+	@author	OverTaker
+	@return ファイルの作成日(UTC)
+	*/
 	Function CreationTimeUtc() As DateTime
 		Return CreationTime.ToUniversalTime()
 	End Function
 
+	/*!
+	@brief	ファイル作成日をUTC時刻で設定する
+	@author	OverTaker
+	@param  ファイルの作成日(UTC)
+	*/
 	Sub CreationTimeUtc(ByRef value As DateTime)
 		CreationTime = value
 	End Sub
 
+	/*!
+	@brief	ファイル最終アクセス日を取得する
+	@author	OverTaker
+	@return ファイルの最終アクセス日
+	*/
 	Function LastAccessTime() As DateTime
 		If Not m_IsFreshed Then Refresh()
@@ -69,4 +127,9 @@
 	End Function
 
+	/*!
+	@brief	ファイル最終アクセス日を設定する
+	@author	OverTaker
+	@param  ファイルの最終アクセス日
+	*/
 	Sub LastAccessTime(ByRef value As DateTime)
 		m_LastAccessTime = value.ToFileTimeUtc()
@@ -74,12 +137,27 @@
 	End Sub
 
+	/*!
+	@brief	ファイル最終アクセス日をUTC時刻で取得する
+	@author	OverTaker
+	@return ファイルの最終アクセス日(UTC)
+	*/
 	Function LastAccessTimeUtc() As DateTime
 		Return LastAccessTime.ToUniversalTime()
 	End Function
 
+	/*!
+	@brief	ファイル最終アクセス日をUTC時刻で設定する
+	@author	OverTaker
+	@param  ファイルの最終アクセス日(UTC)
+	*/
 	Sub LastAccessTimeUtc(ByRef value As DateTime)
 		LastAccessTime = value
 	End Sub
 
+	/*!
+	@brief	ファイルの最終書き込み日を取得する
+	@author	OverTaker
+	@return ファイルの最終書き込み日
+	*/
 	Function LastWriteTime() As DateTime
 		If Not m_IsFreshed Then Refresh()
@@ -87,4 +165,9 @@
 	End Function
 
+	/*!
+	@brief	ファイルの最終書き込み日を設定する
+	@author	OverTaker
+	@param  ファイルの最終書き込み日
+	*/
 	Sub LastWriteTime(ByRef value As DateTime)
 		m_LastWriteTime = value.ToFileTimeUtc()
@@ -92,12 +175,27 @@
 	End Sub
 
+	/*!
+	@brief	ファイルの最終書き込み日をUTC時刻で取得する
+	@author	OverTaker
+	@return ファイルの最終書き込み日(UTC)
+	*/
 	Function LastWriteTimeUtc() As DateTime
 		Return LastWriteTime.ToUniversalTime()
 	End Function
 
+	/*!
+	@brief	ファイルの最終書き込み日をUTC時刻で設定する
+	@author	OverTaker
+	@param  ファイルの最終書き込み日(UTC)
+	*/
 	Sub LastWriteTimeUtc(ByRef value As DateTime)
 		LastWriteTime = value
 	End Sub
 
+	/*!
+	@brief	ファイルが存在するかどうかを取得する
+	@author	OverTaker
+	@return ファイルが存在する場合True,そうでない場合False
+	*/
 	Function Exists() As Boolean
 		If Not m_IsFreshed Then Refresh()
@@ -109,24 +207,50 @@
 	End Function
 
+	/*!
+	@brief	ファイル拡張子を取得する
+	@author	OverTaker
+	@return ファイル拡張子
+	*/
 	Function Extension() As String
 		Return Path.GetExtension(FullPath)
 	End Function
 
+	/*!
+	@brief	ファイルパスを取得する
+	@author	OverTaker
+	@return ファイルパス
+	*/
 	Function FullName() As String
 		Return FullPath
 	End Function
 
+	/*!
+	@brief	ファイル名を取得する
+	@author	OverTaker
+	@return ファイル名
+	*/
 	Function Name() As String
 		Return Path.GetFileName(FullPath)
 	End Function
 
-	'Public Methods
+
+	'----------------------------------------------------------------
+	' パブリック メソッド
+	'----------------------------------------------------------------
+
+	/*!
+	@brief	ファイルを削除する
+	@author	OverTaker
+	*/
 	Virtual Sub Delete()
 		If DeleteFile(ToTCStr(FullPath)) = FALSE Then
-			'Exception
-			debug
-		End If
-	End Sub
-
+			Throw 'Exception
+		End If
+	End Sub
+
+	/*!
+	@brief  ファイルを最新の情報に更新する
+	@author	OverTaker
+	*/
 	Virtual Sub Refresh()
 		Dim data As WIN32_FIND_DATA
@@ -134,5 +258,5 @@
 		FindClose(hFind)
 
-		m_FileAttributes = data.dwFileAttributes
+		m_FileAttributes = New FileAttributes(data.dwFileAttributes As Long, "FileAttributes")
 		m_CreationTime = data.ftCreationTime
 		m_LastAccessTime = data.ftLastAccessTime
@@ -141,5 +265,15 @@
 		m_IsFreshed = True
 	End Sub
+
+	
+	'----------------------------------------------------------------
+	' パブリック プライベート
+	'----------------------------------------------------------------
 Private
+
+	/*!
+	@brief  ファイルの時間を更新する
+	@author	OverTaker
+	*/
 	Sub setFileTime()
 		If Not m_IsFreshed Then Refresh()
Index: /trunk/Include/system/enum.sbp
===================================================================
--- /trunk/Include/system/enum.sbp	(revision 405)
+++ /trunk/Include/system/enum.sbp	(revision 406)
@@ -50,4 +50,12 @@
 	End Function
 
+	Function Operator <> (value As Long) As Boolean
+		Return Not( This = value)
+	End Function
+
+	Function Operator <> (enumBase As EnumBase) As Boolean
+		Return Not( This = enumBase)
+	End Function
+
 	Function Operator or (enumBase As EnumBase) As Boolean
 		Return ( This.value or enumBase.value ) <> 0
@@ -57,4 +65,12 @@
 		Return ( This.value and enumBase.value ) <> 0
 	End Function
+
+	Function Operator or (enumBase As EnumBase) As EnumBase
+		Return New EnumBase( This.value or enumBase.value, This.lpszName )
+	End Function
+
+	Function Operator and (enumBase As EnumBase) As EnumBase
+		Return New EnumBase( This.value and enumBase.value, This.lpszName )
+	End Function
 /*
 	Function Operator xor (enumBase As EnumBase) As EnumBase
