前提・実現したいこと
フォルダ検索を行い、選択したフォルダのパスをテキストボックスに表示し、そのフォルダ内のファイルをリストボックスに一覧表示させる&選択したファイルを削除(ボタンで)する、というアプリケーションを作成しています。
コードの記述の仕方で躓いているため教えていただきたいです。
※追記
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
自分でどこまで実装できたのか、どこで躓いているか、何かわかれば解決できるのかを、自分が書いたコードを示して説明してください。丸投げは NG です。
全て回答を要求するような質問をしましたこと申し訳ございません。以後気を付けます。現状のコードを載せましたので、ご確認いただけると幸いです。
「ファイル一覧が上手くいっていない状態」とはどのような状態なのでしょうか?
エラーが出るのですか?エラーは出ないがListBoxに何も表示されないのですか?
ListBoxにファイルのパスは表示されるのですが、その状態でもう一度別のフォルダを選択すると、前に選択したフォルダのファイルのパスも残った状態になっています。
質問を追加するのであれば、前の質問が分かり追加したことが分かるように追記という形でお願いします。
そうでないと、一見質問と回答との整合性が取れなくなります。
> ボタン押下のタイミングで一覧から削除するにはどうすればよいのでしょうか。
このスレッドの最初の課題・質問「フォルダ内のファイル一覧表示」は回答者の助言で解決できた後の追加質問ですよね?
最初の質問の表題、内容と話が違ってくる場合は新たに別のスレッドを立てて質問するようにしてください。
ここは情報の蓄積も目的としているそうで、例えば検索などで後からここを訪れた人などのことを考えると、一つの課題の解決が次の疑問を呼んで次から次へと質門を繰り返されると訳が分からなくなって、決してよろしくないのは分かりますよね。
このスレッドはベストアンサーを選んでクローズしてください
承知いたしました。teratailを利用し始めたばかりで、使うにあたっての注意事項をよく理解できておりませんでした。今後はこのようなことのないように努めます。ご指摘いただきありがとうございます。
回答2件
あなたの回答
tips
プレビュー