VB2015でファイルを移動しようとすると以下のエラーが表示されます。
型 'System.UnauthorizedAccessException' のハンドルされていない例外が mscorlib.dll で発生しました
引用テキスト追加情報:パスへのアクセスは拒否されました。
フォルダにアクセス権がないのかと思ってフォルダの「プロパティ」の「セキュリティ」の「グループ名またはユーザー名」で「Everyone」を追加して「フルコントロール」の「許可」にチェックを入れました。それでも「アクセスは拒否されました。」等のエラーが出ます。
フォーム画面とプログラム文は以下になります。
vb
1Public Class Form1 2 'フォルダ選択ボタン 3 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 4 Dim Ret As DialogResult 5 6 Me.FolderBrowserDialog1.Description = "フォルダーを選択してください" 7 8 '[新しいフォルダーを作成]ボタンを表示しない 9 Me.FolderBrowserDialog1.ShowNewFolderButton = False 10 11 'ダイアログボックスを表示し、[OK]ボタンが選択されたらフォルダーパスをラベルに表示 12 Ret = Me.FolderBrowserDialog1.ShowDialog() 13 If Ret = DialogResult.OK Then 14 Me.TextBox1.Text = Me.FolderBrowserDialog1.SelectedPath() 15 Else 16 Me.TextBox1.Text = "" 17 End If 18 19 20 'サブフォルダーを取得する 21 Dim Dname As String = Me.TextBox1.Text 22 23 If IO.Directory.Exists(dname) = False Then 24 MessageBox.Show(dname & "が見つかりません。", "通知") 25 Exit Sub 26 End If 27 28 Me.ListBox1.Items.Clear() 29 For Each FName As String In IO.Directory.GetDirectories(Dname) 30 Me.ListBox1.Items.Add(FName) 31 Next 32 33 34 35 End Sub 36 37 '「実行する」ボタン 38 Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 39 40 For Each myList In ListBox1.SelectedItems 41 For Each FName As String In IO.Directory.GetFiles(myList) 42 '↓この部分でエラーが出る 43 IO.File.Move(FName, Me.TextBox1.Text) 44 Next 45 46 Next 47 48 End Sub 49End Class
このプログラムは「フォルダ選択」ボタンでダイアログを利用してフォルダのパスをTextBox1に入力して、ListBox1にTextBox1のフォルダ内のフォルダ一覧を表示しています。
次に「実行する」ボタンを押すとListBox1の選択しているフォルダの中にあるファイルを全てTextBox1のフォルダへ移動しようとします。しかしここでエラーが発生してしまいます。実際にアクセスが拒否されているのか、プログラム文に問題があるのか(僕はこっちのような気がします)分かりません。
お手数ですがよろしくお願いいたします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/05 14:53