source: trunk/Include/Classes/System/IO/FileInfo.ab @ 466

Last change on this file since 466 was 466, checked in by OverTaker, 16 years ago

File.ab,FileInfo?.abをそれなりに実装

File size: 3.5 KB
Line 
1Namespace System
2Namespace IO
3
4
5Class FileInfo
6    Inherits FileSystemInfo
7Public
8    Sub FileInfo(path As String)
9        OriginalPath = path
10        FullPath = Path.GetFullPath(path)
11    End Sub
12
13    Sub ~FileInfo()
14    End Sub
15
16    '----------------------------------------------------------------
17    ' パブリック プロパティ
18    '----------------------------------------------------------------
19
20    Function Directory() As DirectoryInfo
21        Return New DirectoryInfo(Path.GetDirectoryName(FullPath))
22    End Function
23
24    Function DirectoryName() As String
25        Return Path.GetDirectoryName(FullPath)
26    End Function
27
28    Function IsReadOnly() As Boolean
29        If (Attributes and FileAttributes.ReadOnly) = FileAttributes.ReadOnly Then
30            Return True
31        Else
32            Return False
33        End If
34    End Function
35
36    Function Length() As QWord
37        Dim hFile = CreateFile(ToTCStr(FullPath), GENERIC_READ, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0)
38        If hFile = INVALID_HANDLE_VALUE Then
39            Throw New IOException("FileInfo.Length: Failed to CreateFile.")
40            Exit Function
41        End If
42
43        Dim length As QWord
44        If GetFileSizeEx(hFile, VarPtr(length)) Then
45            CloseHandle(hFile)
46            Return length
47        Else
48            CloseHandle(hFile)
49            Throw New IOException("FileInfo.Length: Failed to GetFileSize")
50        End If
51    End Function
52
53    '----------------------------------------------------------------
54    ' パブリック メソッド
55    '----------------------------------------------------------------
56
57/*  Function AppendText() As StreamWriter
58    End Function*/
59
60    Function CopyTo(destFileName As String) As FileInfo
61        Return CopyTo(destFileName, False)
62    End Function
63
64    Function CopyTo(destFileName As String, overwrite As Boolean) As FileInfo
65        File.Copy(FullPath, destFileName, overwrite)
66        Return New FileInfo(destFileName)
67    End Function
68
69    Function Create() As FileStream
70        Return File.Create(FullPath)
71    End Function
72
73/*  Function CreateText() As StreamWriter
74    End Function*/
75
76/*  Sub Decrypt()
77    End Sub*/
78
79    Override Sub Delete()
80        File.Delete(FullPath)
81    End Sub
82
83/*  Sub Encrypt()
84    End Sub*/
85
86/*  Function GetAccessControl() As FileSecurity
87    End Function*/
88
89/*  Function GetAccessControl(includeSections As AccessControlSections) As FileScurity
90    End Function*/
91
92    Sub MoveTo(destFileName As String)
93        File.Move(FullPath, destFileName)
94    End Sub
95
96    Function Open(mode As FileMode) As FileStream
97        Return New FileStream(FullPath, mode)
98    End Function
99
100    Function Open(mode As FileMode, access As FileAccess) As FileStream
101        Return New FileStream(FullPath, mode, access)
102    End Function
103
104    Function Open(mode As FileMode, access As FileAccess, share As FileShare ) As FileStream
105        Return New FileStream(FullPath, mode, access, share)
106    End Function
107
108    Function OpenRead() As FileStream
109        Return Open(FileMode.Open, FileAccess.Read, FileShare.Read)
110    End Function
111
112    Function OpenText() As StreamReader
113        Return New StreamReader(FullPath)
114    End Function
115
116    Function OpenWrite() As FileStream
117        Return Open(FileMode.Open, FileAccess.Write)
118    End Function
119
120/*  Function Replace(destinationFileName As String, destinationBackupFileName As String) As FileInfo
121    End Function*/
122
123/*  Function Replace(destinationFileName As String, destinationBackupFileName As String, ignoreMetadataErrors As Boolean) As FileInfo
124    End Function*/
125
126/*  Sub SetAccessControl(fileSecurity As FileSecurity)
127    End Sub*/
128
129    Override Function ToString() As String
130        Return FullPath
131    End Function
132
133End Class
134
135
136End Namespace
137End Namespace
Note: See TracBrowser for help on using the repository browser.