• ベストアンサー

フォルダ内にあるファイルのファイル名を全て取得したいのですが

毎回お世話になっております<(_ _)>初歩的なことだと思うのですが、あるフォルダの中にあるファイルのファイル名を全て取得したいのですが、どのようにすれば出来るでしょうか?ファイル内を全て読み込みしか知りませんで(>_<)教えて下さい、お願いします<(_ _)>

質問者が選んだベストアンサー

  • ベストアンサー
  • skink
  • ベストアンサー率38% (7/18)
回答No.3

変数の宣言で、 dim strFile as string dim Filepath as string dim FileNames() as string dim Filenum as long としてください。 取得したファイル名は、FileNames(0)、FileNames(1)、FileNames(2)・・・と格納されます。 それでもダメなら。 dim FileNames(500) as string として、「ReDim Preserve PartsFile(FileNum)」を削除してみてください。

satoshi777
質問者

お礼

おはようございます。先にFileNum=1という風に記述してやったら、うまくいきました。一個目がインデックスの有効範囲ではありませんってなったので、FileNumが0だからかなぁっと思って1にしてみました(>_<)結果、うまくいきました(~_~)ありがとうございます<(_ _)>ファイル名もOPEN~と同じかと思ってたんですが、違うんですねぇ(>_<)難しいです(>_<)またよろしくお願いします<(_ _)>

その他の回答 (3)

  • gu-tarou
  • ベストアンサー率42% (6/14)
回答No.4

以前 このgooで厭な思いをしたのですが、また書込んじゃった。 FileListBoxを使います。  File1.Path = フォルダPath:  File1.Pattern = "*.*" :  n = File1.ListCount フォルダー内のファイル数は n として求まり、 ファイル名は File1.List(i) で求まります。 n個に対し i は 0 ~ n-1 に対応します。 よって For i = 1 To n  FileName=File1.List(i - 1) Next i これで求ます。 例として、system32内のファイル数は 私の場合 2,139個 でした。 Private Sub Command1_Click() Path = "C:\WINDOWS\system32" File1.Path = Path File1.Pattern = "*.*": n = File1.ListCount For i = 1 To n FileName = File1.List(i - 1) Next i End Sub

satoshi777
質問者

お礼

おはようございます!今、試してみました!こんな方法もあるんだなぁと大変勉強になりました、ありがとうございます<(_ _)>嫌な思いですかぁ、しかし、僕としてはgu-tarouさんのような方が一人でも多く、困ってる方に助言していただければと思います(>_<)勝手な思いですが(>_<)また、よろしくお願いします<(_ _)>

  • skink
  • ベストアンサー率38% (7/18)
回答No.2

こんにちは。 こんな感じでいかがでしょうか。 FilePath にフォルダを指定。 strFile = Dir$(FilePath & "*.*") 'strFile が空になるまで繰り返し Do While strFile <> "" ReDim Preserve PartsFile(FileNum) 'ファイル名を配列に格納 FileNames(FileNum) = strFile FileNum = FileNum + 1 strFile = Dir$ '次のファイル名を読込 Loop

satoshi777
質問者

補足

さっそく試してみました。ReDim Preserveのところで配列がありませんとなります。ヘルプにはOption Baseが1となっていたので、そうしましたが、変化はありませんでした。ファイル名を配列に格納という意味がいまいちよくいわかりません。配列に格納とはファイルに書き出しとは全く違いますか? すいません、調べても調べてもよく理解できません(>_<)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

VB6で良いでしょうか? FileSystemObjectを利用する方法が詳しく説明されています。 よく利用させてもらってます。ぜひブックマークを。

参考URL:
http://www.officetanaka.net/excel/vba/filesystemobject/folder.htm#Files
satoshi777
質問者

お礼

ありがとうございます<(_ _)>このようなサイトがあるんですねぇ。ブックマークしました!僕の場合、もっと基礎を学んでからじゃないと使えない感じで、悲しいですけど(>_<)

関連するQ&A

  • フォルダ内のファイル名を取得する

    windows 7なのですが、フォルダ内にあるファイル名をテキストとしてすべて一括で取得する方法はないでしょうか? また、フォルダの中にさらに複数のフォルダがあっても、上の階層のフォルダからすべてファイル名を取得する方法はないでしょうか? よろしくお願いいたします。

  • フォルダ名をテキストで取得したい

    フォルダの中にフォルダがあります。 このフォルダ名をテキストで取得したいのですが、何か良いフリーウェアを教えて下さい。 ファイル名取得や、そのファイル名が入っているフォルダ名の取得ができるフリーウェアは 持っているのですが、フォルダ名を取得するものの持ち合わせがありません。 使い勝手の良いものをお願いします。

  • フォルダ内にあるファイル名を取得したい

    cを利用して、指定したフォルダの中にある全てのファイルの名前を取得するプログラムを作りたいのですが、適した関数がわかりません。 指定するフォルダはあらかじめ決めうちで、その中には.txtのファイルのみを格納します。 どなたか教えてください。できれば自分で作りたいのでヒントをください。お願いします。 VisualC++.netを使っています。OSはXPです。

  • ExcelVBAでサブフォルダ名などを取得したい

     ExcelVBAで、Dドライブ内の特定のフォルダ(D:\My Documents等)の中にある全てのフォルダ名やファイル名を取得したいのですが、方法が分かりません。  Dドライブのすぐ下にあるフォルダはDirで取得できるようなのですが、サブフォルダ名が取得できないのです。  具体的にどのように書いたらよいかお教えいただけるとうれしいです。  よろしくお願いします。

  • フォルダの全ファイル名を自動的に取り込むには

    ビジュアルベーシク(VB5)でドライブ、フォルダ、ファイルの各アイコンをフォームに配置して動作させると、手動でファイル名を取得できますが、フォルダを指定したらその中のファイル名全てを、自動的に文字配列変数に取り込むにはどうしたらよいでしょうか?よろしくお願いします。

  • ローカルのフォルダー名やファイル名の取得

    ajaxでローカルのフォルダー名やファイル名の取得やそのパスの取得はできますか?

    • ベストアンサー
    • AJAX
  • Excel VBAでフォルダー・ファイル名の取得

    いつもお世話になります。 Excelで、決められたディレクトリーの下にあるフォルダー名とファイル名を取得して Excelに表示したいのですが、調べたのですがよくわかりませんですた。 決められたディレクトリーは固定で、その下には複数フォルダーがあります。 よろしくお願い致します。

  • フォルダのファイル名の取得

    指定したフォルダにあるファイル名をデータで取得することは可能でしょうか?ファイル名をラベルに印刷してインデックスを作ったりしたいのです。データ形式は何でもよいのですが、プログラミングはできないので、windowsの機能かフリーソフトがあれば教えてください。 よろしくお願いします。

  • フォルダ内のフォルダ名を取得したい。

    VBAで Filename = Dir(Path, vbNormal)を使用すると、ファイル名が取得されます。(VBA一部掲載) フォルダ内の直下のフォルダ名のみ取得したいときはどうすれば、よいでしょうか。 宜しくお願いします。

  • エクセル2007VBAでフォルダ名とファイル名を

    取得したいのです。 あるフォルダ内にマクロのファイルと、複数のサブフォルダ及びその中の複数ファイルがあり 添付画像の通り、サブフォルダ名とファイル名、拡張子を取得したいのです。 どのようにすれば良いでしょうか、、ご教示下さい。

専門家に質問してみよう