1.ファイルの情報(属性・タイムスタンプ・サイズ)を取得・設定する(32_Fil_01) (旧、SampleNo.019/021) |
1.ファイルの属性を取得及び設定・解除する 2.ファイルのタイムスタンプ(作成日時/更新日時/アクセス日時)を取得する 3.ファイルのタイムスタンプ(作成日時/更新日時/アクセス日時)を設定する 4.ファイルサイズを取得する 5.ファイルの有無を確認する 6. |
下記プログラムコードに関する補足・注意事項 動作確認:Windows 8.1 (Windows 7) / VB2013 (VB2010) / Framework 4.5.1 / 対象の CPU:x86 Option :[Compare Text] [Explicit On] [Infer On] [Strict On] Imports :追加なし 参照設定:追加なし その他 : : このサンプル等の内容を無断で転載、掲載、配布する事はお断りします。(私の修正・改訂・削除等が及ばなくなるので) 必要ならリンクをはるようにして下さい。(引用の場合は引用元のリンクを明記して下さい) |
1.ファイルの属性を取得及び設定・解除する |
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 'ファイルの属性を取得及び設定・解除する Dim myAttr As FileAttributes Dim fileName As String = "../../../data/test.txt" 'ファイル属性を取得する myAttr = File.GetAttributes(fileName) Console.WriteLine("{0} の属性は {1} です。", fileName, myAttr) 'ファイルの属性を読み取り専用に設定する File.SetAttributes(fileName, File.GetAttributes(fileName) Or FileAttributes.ReadOnly) 'ファイル属性を取得する myAttr = File.GetAttributes(fileName) Console.WriteLine("{0} の属性は {1} です。", fileName, myAttr) '現在のファイル属性から読み取り専用属性だけを解除する If (myAttr And System.IO.FileAttributes.ReadOnly) > 0 Then '現在の属性から読み取り属性を除去する System.IO.File.SetAttributes(fileName, myAttr Xor System.IO.FileAttributes.ReadOnly) End If 'ファイル属性を取得する myAttr = File.GetAttributes(fileName) Console.WriteLine("{0} の属性は {1} です。", fileName, myAttr) '上記実行結果 '../../../data/test.txt の属性は Archive です。 '../../../data/test.txt の属性は ReadOnly, Archive です。 '../../../data/test.txt の属性は Archive です。 End Sub |
2.ファイルのタイムスタンプ(作成日時/更新日時/アクセス日時)を取得する |
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 'ファイルのタイムスタンプを取得する Dim fileName As String = "../../../data/test.txt" Dim dt As DateTime 'ファイルの作成日時を取得する 'File.GetCreationTime メソッド '指定したファイルまたはディレクトリの作成日時を返します dt = File.GetCreationTime(fileName) Console.WriteLine("{0} の作成日時は {1} です。", fileName, dt) 'ファイルの更新日時を取得する() 'File.GetLastWriteTime メソッド '指定したファイルまたはディレクトリに最後に書き込んだ日付と時刻を返します。 dt = File.GetLastWriteTime(fileName) Console.WriteLine("{0} の更新日時は {1} です。", fileName, dt) 'ファイルのアクセス日時を取得する 'File.GetLastAccessTime メソッド '指定したファイルまたはディレクトリに最後にアクセスした日付と時刻を返します。 dt = File.GetLastAccessTime(fileName) Console.WriteLine("{0} のアクセス日時は {1} です。", fileName, dt) '上記実行結果 '../../../data/test.txt の作成日時は 2014/05/27 08:17:42 です。 '../../../data/test.txt の更新日時は 2012/03/27 11:00:36 です。 '../../../data/test.txt のアクセス日時は 2014/05/27 08:17:42 です。 End Sub |
3.ファイルのタイムスタンプ(作成日時/更新日時/アクセス日時)を設定する |
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click 'ファイルのタイムスタンプを設定する Dim fileName As String = "../../../data/test.txt" Dim dt As DateTime 'ファイルの作成日時を設定する 'File.SetCreationTime メソッド 'ファイルが作成された日付と時刻を設定します。 File.SetCreationTime(fileName, DateTime.Now) dt = File.GetCreationTime(fileName) Console.WriteLine("{0} の作成日時は {1} です。", fileName, dt) 'ファイルの更新日時を設定する 'File.SetLastWriteTime メソッド '指定したファイルに最後に書き込んだ日付と時刻を設定します。 File.SetLastWriteTime(fileName, DateTime.Now) dt = File.GetLastWriteTime(fileName) Console.WriteLine("{0} の更新日時は {1} です。", fileName, dt) 'ファイルのアクセス日時を設定する 'File.SetLastAccessTime メソッド '指定したファイルに最後にアクセスした日付と時刻を設定します。 File.SetLastAccessTime(fileName, DateTime.Now) dt = File.GetLastAccessTime(fileName) Console.WriteLine("{0} のアクセス日時は {1} です。", fileName, dt) '上記実行結果 '../../../data/test.txt の作成日時は 2014/06/15 05:32:36 です。 '../../../data/test.txt の更新日時は 2014/06/15 05:32:36 です。 '../../../data/test.txt のアクセス日時は 2014/06/15 05:32:36 です。 End Sub |
4.ファイルサイズを取得する |
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click 'ファイルサイズを取得する 'FileInfo.Length プロパティ '現在のファイルのサイズを取得します。 Dim fileName As String = "../../../data/test.txt" Dim fs As Long = fileName.Length Console.WriteLine("{0} のファイルサイズは {1} バイトです。", fileName, fs) '上記実行結果 '../../../data/test.txt のファイルサイズは 22 バイトです。 End Sub |
5.ファイルの有無を確認する |
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click 'ファイルの有無を確認する 'File.Exists メソッド '指定したファイルが存在するかどうかを確認します Dim fn As String = "c:\Test.txt" If System.IO.File.Exists(fn) Then MessageBox.Show("ファイル[" & fn & "]は存在します。") Else MessageBox.Show("ファイル[" & fn & "]は存在しません。") End If If System.IO.File.Exists("c:\hogehoge.txt") Then MessageBox.Show("ファイル[" & fn & "]は存在します。") Else MessageBox.Show("ファイル[c:\hogehoge.txt]は存在しません。") End If '下記のように間違って記入しても有と認識される If System.IO.File.Exists("c: \Test.txt") Then MessageBox.Show("ファイル[c: \Test.txt]は存在します。") Else MessageBox.Show("ファイル[c: \Test.txt]は存在しません。") End If 'こちらの場合は、存在しないとなる。(Win32 API関数の FindFirstFile でも同様) Dim Fso As New Scripting.FileSystemObject If Fso.FileExists("c: \Test.txt") Then MessageBox.Show("ファイル[c: \Test.txt]は存在します。") Else MessageBox.Show("ファイル[c: \Test.txt]は存在しません。") End If '因みに下記の設定でもエラー無く実行できる Dim fileName As String = "c: \Test.txt" Dim fs As Long = fileName.Length MessageBox.Show(fs.ToString) End Sub |
6. |
検索キーワード及びサンプルコードの別名(機能名) |