対症療法的な記述になってしまうので、個人的にも「とりあえず例外をcatchして無視」というのは好きではないですが、
vbnet
1Try
2 Directory.EnumerateFiles("M:\").ToList().ForEach(AddressOf File.Delete)
3Catch (e As UnauthorizedAccessException)
4End Try
ではなく
vbnet
1For Each file In Directory.EnumerateFiles("M:\")
2 Try
3 File.Delete(file)
4 Catch (e As UnauthorizedAccessException) : End Try
5Next
とすれば動かすだけなら大丈夫だと思います。
コードを拝見すると、M:
ルート直下のファイルだけを削除、という感じですかね?
もしもドライブのファイルをすべて削除するのが目的なら、クイックフォーマットの方が素早く確実かな、という気もします。
C#でディスクフォーマット - TUYSラボ
参考URLはC#なのでVB.NETとして読み直すとこんな感じでしょうか。
vbnet
1<DllImport("fmifs.dll", CharSet:=CharSet.Auto, EntryPoint:="FormatEx")>
2Private Shared Sub FormatEx(
3 driveLetter As String, mediaFlag As Integer,
4 fsType As String, label As String, quickFormat As Integer,
5 clusterSize As Integer, callBackDelegate As FormatCallBackDelegate)
6End Sub
7
8Private Delegate Function FormatCallBackDelegate(
9 callBackCommand As CallbackCommand,
10 subActionCommand As Integer, action As IntPtr) As Integer
11
12Private Enum CallbackCommand
13 PROGRESS
14 DONEWITHSTRUCTURE
15 UNKNOWN2
16 UNKNOWN3
17 UNKNOWN4
18 UNKNOWN5
19 INSUFFICIENTRIGHTS
20 UNKNOWN7
21 DISKLOCKEDFORACCESS 'UNKNOWN8
22 UNKNOWN9
23 UNKNOWNA
24 DONE
25 UNKNOWNC
26 UNKNOWND
27 OUTPUT
28 STRUCTUREPROGRESS
29End Enum
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/28 07:30
2016/09/28 07:46
2016/09/28 07:54
2016/09/28 08:42
2016/09/29 03:55