私は割り当てられたドライブを持っており、特定のユーザー(実際には特別なアカウントを使用して実行される一連のアプリケーション)によって作成されたファイルをすべて削除します。 HDD上のすべてのファイルとフォルダを繰り返し確認せずに、これを行うにはどのようにすればいいですか?私はちょうど "イテレータ"を取得する必要があります。指定されたユーザーによって作成されたすべてのファイルを削除します
答えて
のバージョンを発表しましたが、次の例
[Test]
public void Test()
{
string user = @"Domain\UserName";
var files = Directory.EnumerateFiles(@"C:\TestFolder")
.Where(x => IsOwner(x, user));
Parallel.ForEach(files, File.Delete);
}
private static bool IsOwner(string filePath, string user)
{
return string.Equals(File.GetAccessControl(filePath).GetOwner(typeof (NTAccount)).Value, user,
StringComparison.OrdinalIgnoreCase);
}
うーん、ハードドライブ上の各ファイルを反復せずにこのリストを取得する方法がないように見えます。大丈夫、ありがとう) – Alexus
パフォーマンスの向上の点では、再帰アルゴリズムを使用してファイルとフォルダを検索するときにタスク並列ライブラリを使用できると思います。
別の方法、あなたは実際に、あなたがそれを行うことができますLucenceは、検索に便利なフレームワークであり、それは、すでに.NET
TPLとIO - SSDではない?たくさんのファイルの結果は、TPLなしの場合よりもずっと悪くなります... –
上を見てみましょうことを行うことができます繰り返しと非常に USN変更ジャーナルを効率的に使用して、http://msdn.microsoft.com/en-us/library/windows/desktop/aa363798.aspxを参照してください。フィルタリングを適切に使用すると、特定の期間内に特定のユーザーが作成したファイルの一覧を取得できます。
一方、この手法は非常に複雑で、時間が重要なアプリケーションに適しています。効率がアプリケーションの焦点でない場合は、より簡単なソリューションを選択します。
- 1. 指定されたディレクトリにゼロサイズのすべてのファイルを削除します
- 2. 指定されたノードの後のすべてのノードを削除します
- 3. pdf()によって作成された一時ファイルを削除する
- 4. Word 2003でアドインによって作成されたCommandBarを削除します。
- 5. FragmentStatePagerAdapterによって作成されたViewPagerからすべてのフラグメントを削除します。
- 6. 指定されたパスで項目を削除し、すべての親を再帰的に削除します
- 7. 誤って削除されたファイルを回復しました
- 8. Gitが削除されました - TortoiseGitによってキャッシュされました
- 9. rooによって作成された重複した* .ajファイル
- 10. 関数によって作成された配列を削除する
- 11. GWTによって生成された絶対位置を削除します
- 12. 今日作成されたすべてのレコードを削除するには?
- 13. .netワークフロー - ユーザーまたはビジネスアナリストによって作成されました
- 14. すべての押下されたキーダウンイベントを削除します
- 15. 削除アクションOpenGraph-Facebookによって実行されました
- 16. VC++によって生成された.objファイルを調べる
- 17. ローカルに削除されたファイルを再作成するには?
- 18. PHPで指定されたディレクトリ下のすべてのファイルを削除するには?
- 19. USINGによって作成されたオブジェクトを返します
- 20. Linux:指定されたすべての単語を含まないファイルの削除
- 21. vshost.exeによってロックされたイメージファイルを削除するC#
- 22. mavenによって生成されたパッケージのファイル名を設定します
- 23. MongoMapper:指定された日付に作成されたすべてのドキュメントを見つける
- 24. CreateIconIndirectによって作成されたカスタムカーソルをcurファイルに保存します。
- 25. 一度に更新、作成、削除された複数のファイルにすべての操作を行う方法
- 26. cocoapodsによって作成されたワークスペースがロックされています
- 27. シリアライザで作成された空のxmlnsを削除します
- 28. linuxのディレクトリに最近作成されたすべてのファイルを削除するには?
- 29. 指定されたキー以外のオブジェクトからすべての要素を削除しますか?
- 30. Makefile.amで生成されたファイルのサブディレクトリの作成と削除
*ファイルの所有者*を意味しますか? –
プログラム的に私はあなたのドライバのすべてのファイルを繰り返す必要があると思います。たぶんあなたはこの問題を動かすことができます。 –