DOBON.NET DOBON.NETプログラミング掲示板過去ログ

開発環境と実行環境による動作の違い

環境/言語:[VB2005SP1 WinXP SP3]
分類:[.NET]

2009/08/27(Thu) 13:51:02 編集(投稿者)
2009/08/27(Thu) 13:50:58 編集(投稿者)
2009/08/27(Thu) 13:50:53 編集(投稿者)

System.IO.Directory.GetDirectoriesでフォルダ名を取得して
ListBoxにフォルダ名を降順に列挙しているのですが
開発環境(HDD)と実行環境(CF)では動作が変わっています。
開発環境:WINXP SP3 .netFW2.0 SP2 HDDにVB2005インストール
実行環境:WINXP SP2 .netFW2.0   CFカードにVB製作ソフトをインストール 
となっています。

具体的に開発環境ではListBoxにフォルダ名が降順に正しく並ぶのですが
実行環境では正しく並ばなくなっています。(ランダムではない)

ソースになります
Dim strFolderPath() As String = System.IO.Directory.GetDirectories(Trim(FolderN))
Dim SplitD
ListBox1.Items.Clear()
For i = strFolderPath.Length - 1 To 0 Step -1
SplitD = Split(strFolderPath(i), Trim(DeleteName) & "\", -1, CompareMethod.Text)
ListBox1.Items.Add(SplitD(1))
Next

ちなみに実行環境をCFカードからHDD(まったく別の)に変えると正しく動作しました。
なので.netFrameWorkの差とも思えないんです。

具体性のない質問ですが困っています。
ご教授お願いします。

追記:開発環境はCドラがHDD、実行環境はCドラがCFという意味です
使用しているファイルシステムの差です。NTFS とか FAT32 とか。
実行環境というか、取得するフォルダが存在するドライブ次第です。
ちなみに NTFS は NTFS なりの順でファイル名順に返しますが、それが本当に期待しているファイル名順かどうかは別の話です。例えば XP 以降の Explorer のファイル名順とは並べ方が違います。
■No25311に返信(Hongliangさんの記事)
ご返答ありがとうございました!

> 使用しているファイルシステムの差です。NTFS とか FAT32 とか。
> 実行環境というか、取得するフォルダが存在するドライブ次第です。
それはしらなかったです。ありがとうございます

> ちなみに NTFS は NTFS なりの順でファイル名順に返しますが、それが本当に期待しているファイル名順かどうかは別の話です。例えば XP 以降の Explorer のファイル名順とは並べ方が違います。
今まではHDD(NTFS)でやってきたのですが、XP以降で Explorer のファイル名順
通り返ってきたような気がしますが、違うことがあるということですか?
それはVBからのアクセスがNTFSのファイル名順でとってくるということでしょうか?

あいまいな質問ですがお答えいただけるならありがたいです。
■No25313に返信(mezashiさんの記事)
>>ちなみに NTFS は NTFS なりの順でファイル名順に返しますが、それが本当に期待しているファイル名順かどうかは別の話です。例えば XP 以降の Explorer のファイル名順とは並べ方が違います。
> 今まではHDD(NTFS)でやってきたのですが、XP以降で Explorer のファイル名順
> 通り返ってきたような気がしますが、違うことがあるということですか?
> それはVBからのアクセスがNTFSのファイル名順でとってくるということでしょうか?
>

順番が違うようになったようですね
http://www.atmarkit.co.jp/fwin2k/win2ktips/342xpsort/xpsort.html
■No25315に返信(?-?さんの記事)
> ■No25313に返信(mezashiさんの記事)
ありがとうございます。
> 順番が違うようになったようですね
> http://www.atmarkit.co.jp/fwin2k/win2ktips/342xpsort/xpsort.html
>
上のサイト見てきましたが今回Hongliang さんが指摘されたNTFSとFAT
によるファイルシステムの差なので、以前のソートに戻しても
ファイルシステムが違うとうまくいかないような気がします。
ちなみに降順に並べたのは頭が数値のフォルダだけだからです。

Hongliangさん?-?さんありがとうございました!
とってきたフォルダ名をコード処理でなんとか並べようと思います。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板