tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルフォルダ配下で一番新しい日付を探す
記事No1722
投稿日: 2005/05/24(Tue) 16:30
投稿者ぴーちゃん
[OSのVer]:WindowsXP    [VBのVer]:VB.NET 2003
VBを触り始めて3ヶ月程度です。
今回の目的は「特定のフォルダ配下のファイル数とフォルダ数のカウント、サイズの取得」と、
「特定のフォルダ配下のファイルで一番新しい更新日付を取得する」です。

こちらの hhttp://www.bcap.co.jp/hanafusa/dotnet/file12.htm
を利用させていただき、フォルダ配下すべて〜をチェックして、フォルダ数やサイズの取得
ができるようになりました。

ただ、ファイルの更新日付が一番新しいものを見つけて、その日付を持ってくることができません。
hhttp://www.bcap.co.jp/hanafusa/dotnet/file03.htm があるのは知っておりますが、
どう組み合わせたら良いのか悩んでいます。
どなたかご教示願います。
※サブフォルダだけじゃなくて、配下のすべて・・・・となると難しいですね。

[ツリー表示へ]
タイトルRe: フォルダ配下で一番新しい日付を探す
記事No1726
投稿日: 2005/05/24(Tue) 17:22
投稿者花ちゃん
VB6.0 の方に、指定フォルダ以下のサブフォルダを列挙 があります。FileSystemObject を
使って取得しているので、.NET でもほぼそのまま使えるかと思います。
又、探せば、他の方法での取得のサンプルが見つかるかとおもいます。
hhttp://dobon.net/vb/dotnet/file/getfiles.html
それでファイルを列挙して日付の比較をして新しいファイル名を変数に入れておけば
それが最新の日付のファイルになるかと。


[ツリー表示へ]
タイトルRe^2: フォルダ配下で一番新しい日付を探す
記事No1743
投稿日: 2005/05/25(Wed) 15:06
投稿者ぴーちゃん
早速のお返事ありがとうございます。
> それでファイルを列挙して日付の比較をして新しいファイル名を変数に入れておけば
> それが最新の日付のファイルになるかと。

ファイルを見つけて、ファイル名をgetする時に日付もgetすることになると思いますが、考え方はあっ
ています
よね?
日付をgetしたときに、その日付をどこかで保持して、あとからのファイルの日付とつき合わせて、新し
い日付だ
け保持する形でと考えました。

じゃんぬねっとさんからいただいた助言の返信でも書きましたが、
ファイル名getと日付getを同時に行うことができません。String とDateTimeを組み合わせようとすると
エラー
になってしまいます。
どのようにすればよいのでしょうか?
再度ご助言いただけると幸いです

[ツリー表示へ]
タイトルRe^3: フォルダ配下で一番新しい日付を探す
記事No1744
投稿日: 2005/05/25(Wed) 15:59
投稿者ぶぶ
> ファイル名getと日付getを同時に行うことができません。String とDateTimeを組み合わせようとす
ると
> エラー
> になってしまいます。
どういうエラーになるのでしょう?
どんな結果が出ているのでしょう?
サンプルのコードなどあると答えやすくなると思いますが
どこがどうわからないのかわかりません

[ツリー表示へ]
タイトルRe: フォルダ配下で一番新しい日付を探す
記事No1729
投稿日: 2005/05/24(Tue) 18:55
投稿者じゃんぬねっと
参照先http://jeanne.wankuma.com/
こんにちは、じゃんぬ です。

> ただ、ファイルの更新日付が一番新しいものを見つけて、その日付を持ってくることができません。

hhttp://jeanne.wankuma.com/tips/file/08-gettimestamp.html

> ※サブフォルダだけじゃなくて、配下のすべて・・・・となると難しいですね。

hhttp://jeanne.wankuma.com/tips/directory/15-getallfiles.html

[ツリー表示へ]
タイトルRe^2: フォルダ配下で一番新しい日付を探す
記事No1741
投稿日: 2005/05/25(Wed) 14:34
投稿者ぴーちゃん
早速のお返事ありがとうございます。
実は、そちらのサイトも読んで、試していましたがうまくいきませんで・・・・。
下層フォルダ、ファイルまで検索に行っては単体で動きますし、内容も理解したつもりでおります。

しかし、Dim dtUpdate As DateTime で宣言して、下層までなめる検索と組み合わせることができませ
ん。
組み合わせ方のコツのようなものはありますでしょうか?
StringとDateTimeをいっしょに使うには?!

[ツリー表示へ]
タイトルRe^3: フォルダ配下で一番新しい日付を探す
記事No1746
投稿日: 2005/05/25(Wed) 16:09
投稿者じゃんぬねっと
参照先http://jeanne.wankuma.com/
こんにちは、じゃんぬ です。

> 早速のお返事ありがとうございます。
> 実は、そちらのサイトも読んで、試していましたがうまくいきませんで・・・・。

それは、私のサンプルのソースに不具合があるように聞こえますが、
不具合があるのであれば、遠慮なく仰ってください。
私もその方が助かるので・・・・。

> 下層フォルダ、ファイルまで検索に行っては単体で動きますし、内容も理解したつもりでおります。

であれば、改造も楽勝だと思います。

> しかし、Dim dtUpdate As DateTime で宣言して、下層までなめる検索と組み合わせることができません。
> 組み合わせ方のコツのようなものはありますでしょうか?
> StringとDateTimeをいっしょに使うには?!

そのまま利用しようとするからダメなんです。
コピペではなく、あくまで参考にして欲しかったです。

あのメソッド内で、タイムスタンプを取得する合わせ技を使って、
タイムスタンプを随時比較すれば済む話だと思うのですが、違いますでしょうか?

[ツリー表示へ]
タイトルRe^4: フォルダ配下で一番新しい日付を探す
記事No1747
投稿日: 2005/05/25(Wed) 16:21
投稿者花ちゃん
10個の配列に数値が入っているとして
その中の一番大きな数値を取得する場合どのようにするのですか?
それと同じ要領でファイルの日付の新しい物を取得すればいいのです。

[ツリー表示へ]
タイトルRe^5: フォルダ配下で一番新しい日付を探す
記事No1752
投稿日: 2005/05/25(Wed) 19:01
投稿者じゃんぬねっと
参照先http://jeanne.wankuma.com/
> 10個の配列に数値が入っているとして
> その中の一番大きな数値を取得する場合どのようにするのですか?
> それと同じ要領でファイルの日付の新しい物を取得すればいいのです。

ん? これは私に対してのレスですか?


# 不用な投稿であれば -> PASS : KILL

[ツリー表示へ]
タイトルRe^6: フォルダ配下で一番新しい日付を探す
記事No1753
投稿日: 2005/05/25(Wed) 20:32
投稿者花ちゃん
> ん? これは私に対してのレスですか?

まさか! とんでもありません。
(ぶらさげたところが悪かったようですね)

元質問者の ぴーちゃん にです。
No.1722 で説明しているのに、まだ同じ事を聞いておられるようなので
もう少し詳しく説明する必要があるのかなと思ってのレスです。

[ツリー表示へ]
タイトルみなさんありがとうございます
記事No1754
投稿日: 2005/05/25(Wed) 23:10
投稿者ぴーちゃん
私のレスのつけ方が悪かったようで申し訳ありません。
じゃんぬねっと殿のGetFilesMostDeepを利用する方法をいじってみたのですが、nPatternの後に
DateTime の値をもってこようとしておりました・・・。

  #  // このディレクトリ内のすべてのサブディレクトリを検索する (再帰)
  #foreach (string nDirPath in System.IO.Directory.GetDirectories(nRootPath)) {
  #     string[] nFilePathes = GetFilesMostDeep(nDirPath, nPattern);

For Each nFilePath As String In nFilePathes

Next nFilePath
の間に、ファイルの時間を比較する条件文を入れればよいのですよね?

[ツリー表示へ]
タイトルRe: みなさんありがとうございます
記事No1756
投稿日: 2005/05/26(Thu) 09:26
投稿者じゃんぬねっと
参照先http://jeanne.wankuma.com/
ちょっと、横槍のレスになりますが、

>   #  // このディレクトリ内のすべてのサブディレクトリを検索する (再帰)
>   #foreach (string nDirPath in System.IO.Directory.GetDirectories(nRootPath)) {
>   #     string[] nFilePathes = GetFilesMostDeep(nDirPath, nPattern);
>
>  For Each nFilePath As String In nFilePathes
>  と
>  Next nFilePath
> の間に、ファイルの時間を比較する条件文を入れればよいのですよね?

なぜ、C# を見てるんでしょう?
VB2003 もあるのに...

[ツリー表示へ]
タイトルRe^2: みなさんありがとうございます
記事No1757
投稿日: 2005/05/26(Thu) 10:42
投稿者ぴーちゃん
じゃんぬねっとさん、申し訳ありません。
貼り付ける文書を間違えていました。リンク先のC#でしたね。ちゃんとVB版のを利用させていただいて
おります。

みなさんへ
この度は大変お世話になりました。
TIPS集などの本を買って勉強もしておりますが、ネット上でも大変勉強になりました。
ご助言参考にさせていただきます。
ありがとうございました。

[ツリー表示へ]