質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

1回答

3035閲覧

配列で一覧取得したパスからファイル名だけを抽出する方法

退会済みユーザー

退会済みユーザー

総合スコア0

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2020/08/12 01:29

編集2020/08/12 02:12

フォルダ内のファイルをパスで一覧取得したのですが、それをパスからファイル名のみに変換したいのですが、方法が分かりません。
調べたところPath.GetFileName() を使えばできると書かれていたのですが、どのようにすればよいのでしょうか。
コードは以下のようになっております。

※追記
ListBoxへの表示をAddRange()からAdd()に変更しました。
修正版のコードが最新のものとなっています。

コード Dim fbd As FolderBrowserDialog = New FolderBrowserDialog() 'フォルダ選択画面を表示し、OKボタンが押下たとき選択フォルダのパスを表示 If fbd.ShowDialog() = DialogResult.OK Then txtFolder.Text = fbd.SelectedPath 'フォルダ内の一覧をパス形式で配列に取得 Dim files As String() = Directory.GetFiles( txtFolder.Text, "*", SearchOption.TopDirectoryOnly ) '配列をListBoxへ表示 lstFile.Items.Clear() lstFile.Items.AddRange(files) End If
コード(修正済み) Dim fbd As FolderBrowserDialog = New FolderBrowserDialog() 'フォルダ選択画面を表示し、OKボタンが押下たとき選択フォルダのパスを表示 If fbd.ShowDialog() = DialogResult.OK Then txtFolder.Text = fbd.SelectedPath 'フォルダ内の一覧をパス形式で配列に取得 Dim filePath() As String = Directory.GetFiles( txtFolder.Text, "*", SearchOption.TopDirectoryOnly) '配列をListBoxへ表示 lstFile.Items.Clear() For i As Integer = 0 To UBound(filePath) lstFile.Items.Add(filePath(i)) Next End If

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YAmaGNZ

2020/08/12 01:37

フルパスのファイル名がどこに格納されているのか分かりますか? そのフルパスのファイル名をAddRangeではなくAddでリストボックスに追加することは出来ますか? もし上記が分からないのであれば、まずは配列について学習することをお勧めします。
退会済みユーザー

退会済みユーザー

2020/08/12 02:10

Addでリストボックスに追加するようにしてみました。もしよろしければご確認いただけますと幸いです。
YAmaGNZ

2020/08/12 02:20 編集

Path.GetFileNameを使用する方法を調べられたとのことなので そこまで出来たのであれば、Path.GetFileNameを使う方法が分かりませんか? 引数に何を渡すのか、戻り値として何が帰ってくるのか理解できれば解決だと思います。 https://docs.microsoft.com/ja-jp/dotnet/api/system.io.path.getfilename?view=netframework-4.8#System_IO_Path_GetFileName_System_String_ あと、正しいかどうかはご自身で動作させてみて確認してください。それがデバッグというものです。 その際は、iの値がいくつからいくつまでの値を取るべきなのかしっかり考えてください。
退会済みユーザー

退会済みユーザー

2020/08/12 02:23

お二人ともありがとうございます。無事にファイル名を抽出することができました。vbを始めて1週間程なもので、小難しく考え過ぎていたのかもしれません。
YAmaGNZ

2020/08/12 02:25

解決したのであれば、最終的なソースを掲載するなどして自己解決としてください。
guest

回答1

0

ベストアンサー

コード Dim fbd As FolderBrowserDialog = New FolderBrowserDialog() 'フォルダ選択画面を表示し、OKボタンが押下たとき選択フォルダのパスを表示 If fbd.ShowDialog() = DialogResult.OK Then txtFolder.Text = fbd.SelectedPath 'フォルダ内の一覧をパス形式で配列に取得 Dim filePath() As String = Directory.GetFiles( txtFolder.Text, "*", SearchOption.TopDirectoryOnly) '配列をListBoxへ表示 lstFile.Items.Clear() For i As Integer = 0 To UBound(filePath) lstFile.Items.Add(Path.GetFileName(filePath(i))) Next

投稿2020/08/12 02:28

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問