■50264 / inTopicNo.1) |
FileSystem.DeleteFileでのダイアログ表示 |
□投稿者/ A.K (4回)-(2010/06/01(Tue) 23:41:38)
|
分類:[VB.NET/VB2005 以降]
こんにちは いつもお世話になっております。 当方の環境はVB2005SP1です。
リストビューでチェックしたファイルを一括削除するロジックを作成しています。(削除したファイルはゴミ箱に送ります) そこで、My.Computer.FileSystem.DeleteFileメソッドを使用することになったのですが、思ったような動作をしてくれません。 MSDNによれば、ファイル削除の際にユーザーに確認するには、showUI を AllDialogs に設定するとあり、また処理中のユーザーによる中断も可能ということだったのですが、そのように指定してもダイアログが表示されないのです。
こちらの想定 1.削除確認ダイアログが表示 2.ユーザーがOKを出したら、リストでチェックされている全てのファイルをゴミ箱送り 3.ユーザーは処理の途中でキャンセルを行える。その場合、途中で削除処理が中断される
実際の動き 1.削除確認ダイアログは表示されず 2.いきなり削除が始まる 3.キャンセルダイアログの表示も行われない
ソース: Dim filePath As String Dim selectedIndex As Integer = 0 Dim i As Integer = 0
Try lstv_Main.BeginUpdate()
For i = lstv_Main.CheckedIndices.Count - 1 To 0 Step -1 selectedIndex = lstv_Main.CheckedIndices(i)
'パスの取得 filePath = GetListItemPath(lstv_Main.Items(selectedIndex))
targetFileInfo = New FileInfo(filePath)
'カウンタの更新 deletedFilesCount += 1 deletedFilesLength += targetFileInfo.Length
'ファイルの削除 My.Computer.FileSystem.DeleteFile(filePath, _ FileIO.UIOption.AllDialogs, _ FileIO.RecycleOption.SendToRecycleBin)
'リストから消す lstv_Main.Items(selectedIndex).Remove() Next Finally lstv_Main.EndUpdate() End Try
参考:http://msdn.microsoft.com/ja-jp/library/5fbah944(VS.80).aspx(My.Computer.FileSystem.DeleteFile メソッド) http://msdn.microsoft.com/ja-jp/library/tdx72k4b(v=VS.80).aspx(Visual Basic でファイルを削除する) http://msdn.microsoft.com/ja-jp/library/h63bz6ys(v=VS.80).aspx(Visual Basic でディレクトリ内のすべてのファイルを削除する)
確認ダイアログに関しては、処理の最初に手動で表示させれば代替可能ですが、キャンセルダイアログが表示されないなどスッキリしない部分があり、 この動作で正しいのかどうか確証が持てないので質問させていただきました。 どなたか分かる方がいらっしゃいましたら、よろしくお願いします。
|
|