- 締切済み
VBで選択したフォルダにフォルダをコピーしたい
VBで、選択したフォルダに、中身の入ったフォルダを上書きしてコピーするプログラムを作りたいと思い、フォルダを選択し、選択したフォルダをラベルに表示させるというところまではできました。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim fbd As New FolderBrowserDialog fbd.Description = "フォルダを指定してください。" fbd.RootFolder = Environment.SpecialFolder.Desktop fbd.SelectedPath = "C:\Windows" fbd.ShowNewFolderButton = True If fbd.ShowDialog(Me) = DialogResult.OK Then Console.WriteLine(fbd.SelectedPath) Label3.Text = fbd.SelectedPath End If End Sub ですが、ここから試行錯誤を繰り返してみるも、FolderBrowserDialogで選択したフォルダにフォルダを上書きすることができないのです。アドバイスよろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- kazne
- ベストアンサー率66% (8/12)
こんな感じでどうでしょうか Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Dim fbd As New FolderBrowserDialog 'フォルダ選択ダイアログインスタンス Dim SelectFldPath As String '選択したコピー元フォルダのパス文字列 Dim CreateFldPath As String 'コピー先フォルダのパス文字列用 fbd.Description = "コピーしたいフォルダを指定してください。" fbd.RootFolder = Environment.SpecialFolder.Desktop fbd.SelectedPath = "C:\Windows" fbd.ShowNewFolderButton = True If fbd.ShowDialog(Me) = DialogResult.OK Then Console.WriteLine(fbd.SelectedPath) SelectFldPath = fbd.SelectedPath fbd.Description = "コピー先のフォルダを指定してください。" If fbd.ShowDialog(Me) = DialogResult.OK Then Console.WriteLine(fbd.SelectedPath) CreateFldPath = fbd.SelectedPath & "\" & Mid(SelectFldPath, InStrRev(SelectFldPath, "\") + 1) If Not System.IO.Directory.Exists(CreateFldPath) Then 'コピー先に選択フォルダが存在しない場合は System.IO.Directory.CreateDirectory(CreateFldPath) 'フォルダを作成する System.IO.File.SetAttributes(CreateFldPath, System.IO.File.GetAttributes(SelectFldPath)) '属性をコピーする End If 'コピー先フォルダに選択フォルダ以下のファイル、サブフォルダ全てを上書きコピーする My.Computer.FileSystem.CopyDirectory(SelectFldPath, CreateFldPath, FileIO.UIOption.AllDialogs, FileIO.UICancelOption.DoNothing) End If End If End Sub
FolderBrowserDialog 部分のコードなんか提示しても仕方がないかと。 肝心の試行錯誤の部分でどこまでできているのかをコードで提示してください。