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

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

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

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

Q&A

解決済

2回答

2671閲覧

フォルダ内のファイル一覧表示、削除

退会済みユーザー

退会済みユーザー

総合スコア0

VB.NET

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

0グッド

0クリップ

投稿2020/08/11 00:57

編集2020/08/11 05:03

前提・実現したいこと

フォルダ検索を行い、選択したフォルダのパスをテキストボックスに表示し、そのフォルダ内のファイルをリストボックスに一覧表示させる&選択したファイルを削除(ボタンで)する、というアプリケーションを作成しています。
コードの記述の仕方で躓いているため教えていただきたいです。

※追記
ListBoxにファイル一覧を表示させるところまでは実装できました。
ファイル削除の部分なのですが、削除ボタン押下のタイミングで一覧から消すようにしたいのですが、現状再実行しないと消えない状態となっております。

該当のソースコード

ソースコード Imports System.IO Public Class Form1 Private Sub DoSelect(sender As Object, e As EventArgs) Handles btnSelectFolder.Click Dim fbd As FolderBrowserDialog = New FolderBrowserDialog() lstFile.Items.Clear() 'フォルダ選択画面を表示し、OKボタンが押されたとき選択フォルダのパスを表示 If fbd.ShowDialog() = DialogResult.OK Then txtFolder.Text = fbd.SelectedPath 'フォルダ内の一覧を配列に取得 Dim files As String() = Directory.GetFiles( txtFolder.Text, "*", SearchOption.TopDirectoryOnly ) '配列をListBoxへ表示 lstFile.Items.AddRange(files) End If End Sub Private Sub DeleteFile(sender As Object, e As EventArgs) Handles btnDelete.Click Dim SelectedFilePath As String = lstFile.SelectedItem '選択したファイルの削除 File.Delete(SelectedFilePath) End Sub Private Sub ExitProc(sender As Object, e As EventArgs) Handles mnuFX.Click Application.Exit() End Sub End Class

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2020/08/11 01:12

自分でどこまで実装できたのか、どこで躓いているか、何かわかれば解決できるのかを、自分が書いたコードを示して説明してください。丸投げは NG です。
退会済みユーザー

退会済みユーザー

2020/08/11 01:36 編集

全て回答を要求するような質問をしましたこと申し訳ございません。以後気を付けます。現状のコードを載せましたので、ご確認いただけると幸いです。
YAmaGNZ

2020/08/11 01:42

「ファイル一覧が上手くいっていない状態」とはどのような状態なのでしょうか? エラーが出るのですか?エラーは出ないがListBoxに何も表示されないのですか?
退会済みユーザー

退会済みユーザー

2020/08/11 02:00

ListBoxにファイルのパスは表示されるのですが、その状態でもう一度別のフォルダを選択すると、前に選択したフォルダのファイルのパスも残った状態になっています。
YAmaGNZ

2020/08/11 04:30

質問を追加するのであれば、前の質問が分かり追加したことが分かるように追記という形でお願いします。 そうでないと、一見質問と回答との整合性が取れなくなります。
退会済みユーザー

退会済みユーザー

2020/08/11 04:36 編集

> ボタン押下のタイミングで一覧から削除するにはどうすればよいのでしょうか。 このスレッドの最初の課題・質問「フォルダ内のファイル一覧表示」は回答者の助言で解決できた後の追加質問ですよね? 最初の質問の表題、内容と話が違ってくる場合は新たに別のスレッドを立てて質問するようにしてください。 ここは情報の蓄積も目的としているそうで、例えば検索などで後からここを訪れた人などのことを考えると、一つの課題の解決が次の疑問を呼んで次から次へと質門を繰り返されると訳が分からなくなって、決してよろしくないのは分かりますよね。 このスレッドはベストアンサーを選んでクローズしてください
退会済みユーザー

退会済みユーザー

2020/08/11 04:57

承知いたしました。teratailを利用し始めたばかりで、使うにあたっての注意事項をよく理解できておりませんでした。今後はこのようなことのないように努めます。ご指摘いただきありがとうございます。
guest

回答2

0

まずは、

フォルダ検索を行い、選択したフォルダのパスをテキストボックスに表示

するコードを組みましょう。
それができたなら、

そのフォルダ内のファイルをリストボックスに一覧表示させる

コードを組みましょう。
そこからおはなしははじまります。

がんばってください。


If fbd.ShowDialog() = DialogResult.OK Then

ここは、OKでないなら、なにもしないで関数から抜けるようにしましょう。
いまでは、OK押そうがなにしようが、あとの処理が走ってしまいます

投稿2020/08/11 01:14

編集2020/08/11 01:37
y_waiwai

総合スコア88042

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

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

退会済みユーザー

退会済みユーザー

2020/08/11 01:35

ありがとうございます。現在のコードの状況を上げたので、よろしければご確認いただけますと幸いです。
y_waiwai

2020/08/11 01:37

追記しました
退会済みユーザー

退会済みユーザー

2020/08/11 01:58

なにもしないで、というのはこのIf文が不要ということでしょうか。理解が足らず申し訳ございません。
y_waiwai

2020/08/11 02:04

不要ではなく、修正しよう、ということです。 いまはOKであるなら、というif文ですよね
退会済みユーザー

退会済みユーザー

2020/08/11 02:09

返信いただきありがとうございます。End If をlstFile.Items.AddRange(files)の後ろにすれば良い、という解釈で間違っていないでしょうか。
guest

0

ベストアンサー

ListBoxに追加したものは消さないと残ったままとなります。
なので、ListBoxにアイテムを追加する前にListBoxのアイテムを全て消してやる処理が必要です。

ListBox.Items プロパティ
ListBox.ObjectCollection クラス
ListBox.ObjectCollection.Clear メソッド
これらを参照して、ListBoxのアイテムを全て消す処理を追加してください。

投稿2020/08/11 02:14

YAmaGNZ

総合スコア10489

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

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

退会済みユーザー

退会済みユーザー

2020/08/11 02:21

わざわざリンクまで貼っていただきありがとうございます。上手くいきました。
YAmaGNZ

2020/08/11 04:32

「削除ボタンをクリックしても一覧に残ったままとなってしまいます」ではなく自分で消さないといけません。 私が提示したリンクを参照すれば解決できるかと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問