Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


882 / 2272 ツリー ←次へ | 前へ→

【9674】フォルダ内の最新ファイルの取得について qq 07/7/9(月) 10:34 質問[未読]
【9675】Re:フォルダ内の最新ファイルの取得について qq 07/7/9(月) 10:50 お礼[未読]

【9674】フォルダ内の最新ファイルの取得について
質問  qq  - 07/7/9(月) 10:34 -

引用なし
パスワード
   お世話になります。

掲題の通りなのですが、フォルダを指定して、そのフォルダ内の
最新のファイルを取得したいです。
ファイル名にはタイムスタンプがついており、
ファイル名でソートできればどれが最新のファイルなのか
すぐ分かるようになっています。
(最新→一番タイムスタンプの値が大きいファイル)
ファイル名でソートできればすぐに取得できるのですが。

  Dim MyPath As String
  Dim MyName As String
  ' C:\ 内のフォルダの名前を表示します。
  MyPath = "D:\test\"
  MyName = Dir(MyPath)
  Do While MyName <> ""
    Debug.Print MyName
    MyName = Dir
  Loop

これでファイル名を取得することはできますが、
一度全てのファイル名を取得してテーブルにでも
保存して、ソートをかけてからでないと、
最新ファイルがどれだか分からないのではないかと
思います。

ご存知の方おられましたら、どうぞ教えて下さい。

【9675】Re:フォルダ内の最新ファイルの取得につい...
お礼  qq  - 07/7/9(月) 10:50 -

引用なし
パスワード
     Set FileSysobj = CreateObject("Scripting.FileSystemObject")
  Set Fid = FileSysobj.GetFolder(DirHdata)
  Set Fils = Fid.Files
  f_name1 = "import" '**ファイル名要確認**
  For Each Trgtfile In Fils
    
    If InStr(Trgtfile.Name, "_") <> 0 Then
      If f_name1 = _
        Replace(Trgtfile.Name, Mid(Trgtfile.Name, InStr(Trgtfile.Name, "_")), "") Then
''     同一日付の最新ファイルを取得
        If taihi < Mid(Trgtfile.Name, InStr(Trgtfile.Name, "_") + 1, 12) Then
          taihi = Mid(Trgtfile.Name, InStr(Trgtfile.Name, "_") + 1, 12)
          TAIHIFL = Trgtfile.Name
        End If
        flg = True
      End If
    End If
  
  Next

以上のような記述で、最大のタイムスタンプを取得することが
できました。
お騒がせしました。

882 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078201
(SS)C-BOARD v3.8 is Free