Index: /Include/Classes/System/IO/FileStream.ab
===================================================================
--- /Include/Classes/System/IO/FileStream.ab	(revision 259)
+++ /Include/Classes/System/IO/FileStream.ab	(revision 260)
@@ -1,4 +1,4 @@
 
-/* ほんとはmiscかファイルを分けたほうがいいかもしれないが一先ず実装 */
+/* ほんとはmiscに入れるかかファイルを分けたほうがいいかもしれないが一先ず実装 */
 Enum FileOptions
 	Asynchronous
@@ -17,5 +17,5 @@
 
 	/*
-	ファイルハンドルからこれらを取得できれば入らないが
+	ファイルハンドルからこれらを取得できれば、これらは入らないが
 	今のところは不明なので自前で実装するしかない
 	*/
@@ -30,31 +30,31 @@
 
 Public
-	/* コンストラクタ.NETと同じように実装は難しい、一先ず動くものを実装したが要変更だと思う */
+	/* コンストラクタ.NETと同じように実装は難しい、一先ず動くものを実装したが変更が必要だと思う */
 	Sub FileStream(path As String, mode As FileMode, access As FileAccess, share As FileShare, options As FileOptions)
-		Dim acc As DWord
-		Dim mod As DWord
-		Dim sha As DWord
-		Dim opt As DWord
+		Dim ac As DWord
+		Dim mo As DWord
+		Dim sh As DWord
+		Dim op As DWord
 
 		Select Case access
 			Case FileAccess.Read
-				acc=GENERIC_READ
+				ac=GENERIC_READ
 			Case FileAccess.ReadWrite
-				acc=GENERIC_READ or GENERIC_WRITE
+				ac=GENERIC_READ or GENERIC_WRITE
 			Case FileAccess.Write
-				acc=GENERIC_WRITE
+				ac=GENERIC_WRITE
 		End Select
 
 		Select Case share
 			Case FileShare.DeleteFile
-				sha=FILE_SHARE_DELETE
+				sh=FILE_SHARE_DELETE
 			Case FileShare.None
-				sha=0
+				sh=0
 			Case FileShare.Read
-				sha=FILE_SHARE_READ
+				sh=FILE_SHARE_READ
 			Case FileShare.ReadWrite
-				sha=FILE_SHARE_READ or FILE_SHARE_WRITE
-			Case Write
-				sha=FILE_SHARE_WRITE
+				sh=FILE_SHARE_READ or FILE_SHARE_WRITE
+			Case FileShare.Write
+				sh=FILE_SHARE_WRITE
 		End Select
 
@@ -75,76 +75,58 @@
 
 		Select Case options
-			Case FileOption.Asynchronous
-				opt=FILE_FLAG_OVERLAPPED
+			Case FileOptions.Asynchronous
+				op=FILE_FLAG_OVERLAPPED
 			Case FileOptions.DeleteOnClose
-				opt=FILE_FLAG_DELETE_ON_CLOSE
+				op=FILE_FLAG_DELETE_ON_CLOSE
 			Case FileOptions.Encrypted
 			Case FileOptions.None
-				opt=0
+				op=0
 			Case FileOptions.RandomAccess
-				opt=FILE_FLAG_RANDOM_ACCESS
+				op=FILE_FLAG_RANDOM_ACCESS
 			Case FileOptions.SequentialScan
-				opt=FILE_FLAG_SEQUENTIAL_SCAN
+				op=FILE_FLAG_SEQUENTIAL_SCAN
 			Case FileOptions.WriteThrough
-				opt=FILE_FLAG_WRITE_THROUGH
-		End Select
-
-		This.handle=CreateFile(path.Chars As PSTR,acc,sha,ByVal NULL,mo,opt,0)
-		If This.handle=HANDLE_INVALIDATE Then
+				op=FILE_FLAG_WRITE_THROUGH
+		End Select
+
+		This.handle=CreateFile(path.Chars As PSTR,ac,sh,ByVal NULL,mo,op,0)
+		If This.handle=INVALID_HANDLE_VALUE Then
 		'エラー処理
 		'Throw ArgumentException
 		'Throw IOException
 		'Throw System.IO.FileNotFoundException 
+			This.handle=0
 			Exit Sub
 		End If
 
-		fileMode = mod
-		fileAccess = acc
-		fileShare = sha
-		fileOptions = opt
+		filePath = path
+		fileMode = mo
+		fileAccess = ac
+		fileShare = sh
+		fileOptions = op
+	End Sub
+	Sub FileStream(path As String, mode As FileMode, access As FileAccess, share As FileShare)
+		FileStream(path,mode,access,share,FileOptions.None)
+	End Sub
+	Sub FileStream(path As String, mode As FileMode, access As FileAccess)
+		FileStream(path,mode,access,FileShare.None,FileOptions.None)
 	End Sub
 	Sub FileStream(path As String, mode As FileMode)
-		Dim acc As DWord
-		Dim mo As DWord
+		Dim access As FileAccess
 		Select Case mode
 			Case FileMode.Append
-				acc=GENERIC_WRITE
-				mo=OPEN_ALWAYS
-'				OutputDebugString(Ex"append\n")
+				access=FileAccess.Write
 			Case FileMode.Create
-				acc=GENERIC_READ or GENERIC_WRITE
-				mo=CREATE_ALWAYS
-'				OutputDebugString(Ex"create\n")
+				access=FileAccess.ReadWrite
 			Case FileMode.CreateNew
-				acc=GENERIC_READ or GENERIC_WRITE
-				mo=CREATE_NEW
-'				OutputDebugString(Ex"create new\n")
+				access=FileAccess.ReadWrite
 			Case FileMode.Open
-				acc=GENERIC_READ or GENERIC_WRITE
-				mo=OPEN_EXISTING
-'				OutputDebugString(Ex"open\n")
+				access=FileAccess.ReadWrite
 			Case FileMode.OpenOrCreate
-				acc=GENERIC_READ or GENERIC_WRITE
-				mo=OPEN_ALWAYS
-'				OutputDebugString(Ex"open or create\n")
+				access=FileAccess.ReadWrite
 			Case FileMode.Truncate
-				acc=GENERIC_WRITE
-				mo=TRUNCATE_EXISTING
-'				OutputDebugString(Ex"truncate\n")
-		End Select
-
-		'ファイルを作成または開く
-		This.handle=CreateFile(path.Chars As PSTR,acc,0,ByVal NULL,mo,0,0)
-
-		'エラー処理
-		'Throw ArgumentException
-		'Throw IOException
-		'Throw System.IO.FileNotFoundException 
-
-
-		'ファイルを作成または開いた後の処理
-		If mode=FileMode.Append Then
-			SetFilePointer(This.handle,0,NULL,FILE_END)
-		End If
+				access=FileAccess.Write
+		End Select
+		FileStream(path,mode,access,FileShare.None,FileOptions.None)
 	End Sub
 
