スマホで画像や動画をとりまくっていたら、どんどんファイルが増加していきます。
スマホの場合は、たいてい1万個ファイルが貯まると、別のフォルダができて同じ名前のファイルの戻ってしまいます。
このままだと、うっかり上書きしてしまったら最悪です。
そのため、写真の更新日時を元に、ファイル名を変更するプログラムを書きました。
写真の場合は、EXIFに撮影日時の情報を持っているのですが、動画の場合は撮影日時の情報がないことがあるので、更新日時で統一することにしました。
動画の場合は、気分的には更新日時マイナス動画の長さにすると、撮影開始時刻がファイル名になるので気持ちいいのですが、そういう余分なことをするのはやめておきました。
スポンサーリンク
ソースコードはこちら。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
Public Class Form1 Private ps選択フォルダ As String Private ps変更前ファイル名Array() As String Private ps変更後ファイル名Array() As String Private Sub btnフォルダ選択_Click(sender As Object, e As EventArgs) Handles btnフォルダ選択.Click Dim objFBD As New FolderBrowserDialog lbl選択フォルダ.Text = "選択フォルダ:" rtxtファイルリスト.Text = "" objFBD.RootFolder = Environment.SpecialFolder.Desktop objFBD.ShowNewFolderButton = False If objFBD.ShowDialog = DialogResult.OK Then If objFBD.SelectedPath <> "" Then ps選択フォルダ = objFBD.SelectedPath lbl選択フォルダ.Text = "選択フォルダ:" & ps選択フォルダ Dim fileArray() As String fileArray = IO.Directory.GetFiles(objFBD.SelectedPath, "*", System.IO.SearchOption.AllDirectories) Dim sファイル一覧 As String = "" Dim sTemp() As String Dim s拡張子 As String Dim objFI As System.IO.FileInfo If Not fileArray Is Nothing Then ReDim ps変更前ファイル名Array(UBound(fileArray)) ReDim ps変更後ファイル名Array(UBound(fileArray)) For i = 0 To UBound(fileArray) objFI = My.Computer.FileSystem.GetFileInfo(fileArray(i)) ps変更前ファイル名Array(i) = fileArray(i).Replace(ps選択フォルダ & "\", "") If ps変更前ファイル名Array(i).IndexOf(".") <> -1 Then sTemp = ps変更前ファイル名Array(i).Split(".") s拡張子 = sTemp(1) ps変更後ファイル名Array(i) = Format(objFI.LastWriteTime, "yyyyMMdd-HHmmss") & "." & s拡張子 End If sファイル一覧 &= ps変更前ファイル名Array(i) & "→" & ps変更後ファイル名Array(i) & vbCrLf Next rtxtファイルリスト.Text = sファイル一覧 btnファイル名更新.Visible = True End If End If End If End Sub Private Sub btnファイル名更新_Click(sender As Object, e As EventArgs) Handles btnファイル名更新.Click If MessageBox.Show("ファイル名更新しますか?", "", MessageBoxButtons.YesNo) = DialogResult.No Then Exit Sub End If For i = 0 To UBound(ps変更前ファイル名Array) System.IO.File.Move(ps選択フォルダ & "\" & ps変更前ファイル名Array(i), ps選択フォルダ & "\" & ps変更後ファイル名Array(i)) Next btnファイル名更新.Visible = False MessageBox.Show("完了") End Sub End Class |
小さい子供や子猫がいるのなら、写真、動画をとりまくったほうが良いです。
年々、クラウドストレージの容量もアップしているので、
保存できない心配をしなくてよいです。
僕は、現在、Dropbox Proの契約をしているので月2000円程度で、
3TBまで保存できます。
撮りまくってから、後で厳選するのがよいでしょう。