ここから本文です

VBで特定のフォルダ内のフォルダ一覧を取得してフォルダ名だけをコンボボックスに...

fyj********さん

2017/8/921:16:04

VBで特定のフォルダ内のフォルダ一覧を取得してフォルダ名だけをコンボボックスに表示させたい

題名通りです。
Private Sub FM_AlbumDelete_Load(sender As Object, e As EventArgs) Handle

s MyBase.Load
Dim subFolders As String() = System.IO.Directory.GetDirectories(System.Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\GM3\Photo_Management\AlbumData\", "*", System.IO.SearchOption.AllDirectories)

CB_1.Items.AddRange(subFolders)
End Sub

上記はフォルダ一覧をフルパスで表示させているのですが"C:\Users\xxxx\AppData\Roaming\GM3\Photo_Management\AlbumData\abcd"だったら
"abcd"と表示させたいです。

どうしたらいいでしょうか。

閲覧数:
68
回答数:
2

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

lin********さん

2017/8/923:05:37

「Visual Basic 2017 コンソールアプリケーション」で確認。

Dim x As String
x = "C:\Users\xxxx\AppData\Roaming\GM3\Photo_Management\AlbumData\abcd"
MsgBox(Mid(x, InStrRev(x, "\") + 1))

「InStr()」は、ご存じのとおり、

InStr("abcdef", "c")

なら、「3」を返します。

今、知りたいのは、一番最後の「\」ですから、「InStrRev()」を使います。

これは、

InStrRev("abcabcabc", "a")

とした場合、後ろから「a」を探します。

後ろから探しますが、返す数値は前から数えた場所です。

すなわち、一番後ろの「a」は、前から数えて「7」文字目にありますから、「7」を返すわけです。

これを利用して「Mid(x, InStrRev(x, "\") + 1)」とすれば、一番後ろの「\」以降の文字だけが取り出せます。

ベストアンサー以外の回答

1〜1件/1件中

tac********さん

2017/8/921:40:36

ファイルパスからディレクトリ名を取得する
http://jeanne.wankuma.com/tips/vb.net/path/getdirectoryname.html

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる