複数のファイル名を変数に置き換えるには?

解決


ペンペン  2009-11-10 21:55:00  No: 142784

vb2005です。

担当者が使う各PCでプログラム(WindowsAP)を立ち上げたとき、
共有ディスクにおいてある最新版とタイムスタンプを比較し、
共有ディスクにある方が新しいときはダウンロードして上書きする、
という仕組みを作っています。

特定のファイル(ファイル名が特定できる)については
この処理が既に実現しているのですが、あるディレクトリの
下にある複数のファイル(プログラムやExcelファイル)について、
一つひとつを変数に取り込む、というところがどうやって実現
すればいいのか見当がつきません。

どなたかご指導下さい。


GOD  2009-11-10 22:32:09  No: 142785

http://dobon.net/vb/dotnet/file/getfiles.html


ペンペン  2009-11-12 01:06:53  No: 142786

GODさん、さっそくの回答ありがとうございました。
「ピッタリこのとおりでした」といいたいところなんですけど、

Directory.GetFilesメソッドを使うと、ファイル名がフルパスで取られます。
従って、

Dim files As String() = System.IO.Directory.GetFiles( _
    "C:\My Documents", "*", System.IO.SearchOption.AllDirectories)

とすると、「files」はフルパスのファイル名の配列になります。

実際はフルパスでないファイル名が同じファイル同士を存在やタイムスタンプ
等を比較したいのですが、これではできない状況です。

My.Computer.FileSystemクラスのGetNameメソッドも調べてみたのですが、
ファイル名は取れるようですが、配列化ができません。

なんかよくわかっていないような感じの質問で申し訳ありませんが、
よろしくご指導下さい。


GOD  2009-11-12 01:31:35  No: 142787

DirectoryInfo の GetFiles(FileIndo()型を返却) を使用するか
不要なパス部分を Substring を使って取り除くかしてください。


ぺんぺん  2009-11-14 02:17:37  No: 142788

GODさん、返信が遅くなりました。

IO.Path.GetFileNameメソッドを使ってファイル名のみの切り出し
に成功しました。

無事、当初の目的の更新処理が完成しました。
配信処理がちゃんとできれば、WEBアプリと比べてもメンテナンス
に関してはヒケをとりませんよね。

本当にありがとうございました。


ぺんぺん  2009-11-14 02:19:13  No: 142789

IO.Path.GetFileNameメソッドを使ってファイル名のみの切り出し
に成功しました。

無事、当初の目的の更新処理が完成しました。
配信処理がちゃんとできれば、WEBアプリと比べてもメンテナンス
に関してはヒケをとりませんよね。

本当にありがとうございました。

スミマセンでした。
解決チェックを忘れてました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加