C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: ホルダー内のファイルを高速削除


(過去ログ 168 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■96964 / inTopicNo.1)  ホルダー内のファイルを高速削除
  
□投稿者/ ゆい (24回)-(2021/03/06(Sat) 18:26:36)

分類:[VB.NET/VB2005 以降] 

VB2017です。
超初心者ですみません。

  For Each tempFile As String In System.IO.Directory.GetFiles("C:\Users\***\stock")
      System.IO.File.Delete(tempFile)
  Next

今はこのようにして\stock内のファイルを削除してるのですが、数が多いと結構長い時間が掛かってもしまいます。
もっと短時間での削除する方法はないでしょうか?
よろしくお願いします。

引用返信 編集キー/
■96965 / inTopicNo.2)  Re[1]: ホルダー内のファイルを高速削除
□投稿者/ WebSurfer (2198回)-(2021/03/06(Sat) 18:33:27)
No96964 (ゆい さん) に返信

> For Each tempFile As String In System.IO.Directory.GetFiles("C:\Users\***\stock")
> System.IO.File.Delete(tempFile)
> Next
>
> 今はこのようにして\stock内のファイルを削除してるのですが、数が多いと結構長い時間が掛かってもしまいます。
> もっと短時間での削除する方法はないでしょうか?

Directory ごと削除しても処理時間は変わりませんか?
引用返信 編集キー/
■96966 / inTopicNo.3)  Re[1]: ホルダー内のファイルを高速削除
□投稿者/ 魔界の仮面弁士 (2996回)-(2021/03/06(Sat) 18:48:26)
2021/03/06(Sat) 19:06:54 編集(投稿者)

No96964 (ゆい さん) に返信
> ホルダー内のファイルを高速削除

ホルダー (holder) ではなく
フォルダー (folder) ですね。


> For Each tempFile As String In System.IO.Directory.GetFiles("C:\Users\***\stock")

System.IO.Directory.GetFiles の代わりに
System.IO.Directory.EnumerateFiles を試してみてください。

(要 .NET Framework 4.0 以上)
https://www.atmarkit.co.jp/fdotnet/dotnettips/1018enumfiles/enumfiles.html


--- 追記 ---

列挙中に削除や追加を行うだとしたら、
EnumerateFiles ではマズいかな…と思ったけれど、
内部的には FindFirstFile / FindNextFile なので大丈夫かな。
引用返信 編集キー/
■96970 / inTopicNo.4)  Re[2]: ホルダー内のファイルを高速削除
□投稿者/ ゆい (25回)-(2021/03/06(Sat) 22:48:51)
No96966 (魔界の仮面弁士 さん) に返信

ありがとうございます。

ホルダー (holder) ではなくフォルダー (folder) でした。
すみません。

System.IO.Directory.EnumerateFiles も試しはしたのですが余り変わりはなかったです。
仕方がないので Directory ごと削除にすることにします。



解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -