ネットワーク上のすべてのPCをスキャンし、特定のイメージファイルが存在するかどうかを確認するタスクがあります。ネットワーク上の他のPCからファイルの詳細を取得する方法
私はインターネットで検索していますが、正しいトラックはありません。
私は同じネットワーク上の私のサーバーからC#(私はC#で快適です)コンソールアプリケーションを使用してこれを行うことができますか?そしてどうやって?
私はコードの下に使用して単一の共有フォルダのためにこれを行っている:
List<string> result = new List<string>();
List<string> searchPatterns = new List<string> { "*.jpg", "*.eps", "*.gif", "*.tiff" };
// Store a stack of our directories.
Stack<string> stack = new Stack<string>();
// Add initial directory.
stack.Push(SharedFolderPath);
while (stack.Count > 0)
{
// Get top directory
string dir = stack.Pop();
// Add all files at this directory to the result List.
result.AddRange(searchPatterns.SelectMany(filter => System.IO.Directory.GetFiles(dir, filter)).ToArray());
// Add all directories at this directory.
foreach (string dn in Directory.GetDirectories(dir))
{
stack.Push(dn);
}
}
私たちのネットワーク上で利用可能なコンピュータのリストを取得することができますが、そのリモートコンピュータにありますどのように多くのドライブをチェックする方法は?次にPedroがコメントしたように、そのドライブ内のすべてのファイルにアクセスするために$を使用します。
ネットワークはどのように設定されていますか?ローカルドライブではないことを完全に無視する可能性があります。 'var fi =新しいFileInfo(@" \\ RemoteComputer \ Folder ");'マップされたドライブと同じように正常に動作します – Rob
ドライブはマップされていません。私は共有フォルダのためにこれを行った。しかし今私は、私たちのネットワーク上のすべてのPCのために行う必要があり、各PCの各ドライブの各フォルダをスキャンして、それらの画像がそれらのPC上に存在するかどうかをチェックする必要があります。 –
これらのすべてのコンピュータに必要な特権を持っている場合は、$ notation(つまり、\\ RemoteComputer \ c $)を使用してディスクにアクセスできます。 –