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

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

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

vb.netでファイル処理を高速にしたい

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

■97036 / inTopicNo.1)  vb.netでファイル処理を高速にしたい
  
□投稿者/ 悩み相談 (14回)-(2021/03/17(Wed) 20:12:14)

分類:[.NET 全般] 

いつもお世話になります

ゆい様の 「ホルダー内のファイルを高速削除」の質問内容について
同様の悩みがありましたので、このタイミングで質問させてください。


【背景】

vb.netでのファイル処理はWINDOWSのエクスプローラと比較すると相当遅いです
これはc++を使えない限り、改善することはできないとあきらめていました


【妄想】

FSO file system object を使えば高速でファイル処理ができるような気がしています
しかし
インターネット上にその方法の記載がないため、試すことができずにいましたし
そもそも使えないと思いこんでいました


【質問】

ここで質問ですが
vb.netで FSO を使うことは可能なのでしょうか

また、com を使って、ファイルの高速処理をするアドイン的なものはあるのでしょうか



【調べてみたこと】
いろいろ調べてみて

PowerShell
https://qiita.com/opengl-8080/items/bb0f5e4f1c7ce045cc57



Visual C# を使用して基本的なファイル i/o を実行する
https://docs.microsoft.com/ja-jp/troubleshoot/dotnet/csharp/file-io-operation


を読み解けば、ゴールに近づけそうな気がしているのですが
見当違いな方向でしょうか


引用返信 編集キー/
■97037 / inTopicNo.2)  Re[1]: vb.netでファイル処理を高速にしたい
□投稿者/ 魔界の仮面弁士 (3016回)-(2021/03/17(Wed) 21:04:29)
No97036 (悩み相談 さん) に返信
> vb.netでのファイル処理はWINDOWSのエクスプローラと比較すると相当遅いです

具体的には、どういうファイル処理を行いたいのでしょうか?

内部的には、Windows API の呼び出しに昇華されているはずですので、
通常は十分な速度が得られるかと思います。

コーディングを見直せば、高速化される可能性もありそうですが、
それでも足りないのであれば、自ら API を直接呼びだすという選択肢もあります。


> FSO file system object を使えば高速でファイル処理ができるような気がしています

.NET から呼び出す場合には COM Interop を中継する形になるため、
VBA からの操作に比べると、パフォーマンスは僅かに劣る可能性がありますが、
COM 参照するだけなので、VBA や VBScript とほぼ同様の記述で使えます。
参照設定で Microsoft Scripting Runtime を加えても良いですし、
CreateObject で呼び出す方法でも OK です。(参照設定した方が望ましい)

ただし通常は、System.IO 名前空間のクラスで処理した方が良いでしょう。


> インターネット上にその方法の記載がないため、試すことができずにいましたし
「filesystemobject releasecomobject」というキーワードで検索してみてください。
引用返信 編集キー/
■97038 / inTopicNo.3)  Re[2]: vb.netでファイル処理を高速にしたい
□投稿者/ 悩み相談 (15回)-(2021/03/18(Thu) 06:33:56)
2021/03/18(Thu) 06:34:45 編集(投稿者)

魔界の仮面弁士様

> インターネット上にその方法の記載がないため

ではなく
見つけられないため
でした

教えていただいた検索ワードで見つかった記事を参考に
いろいろ試してみたいと思います
動作結果等、報告させていただきます。

ありがとうございました!


引用返信 編集キー/

このトピックをツリーで一括表示


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

このトピックに書きこむ