Как сделать быстрый запрос к файловой системе? - PullRequest
0 голосов
/ 18 февраля 2009

Я пытаюсь запросить файловую систему на удаленном компьютере, чтобы получить список имен файлов в определенном каталоге.

До сих пор я использую класс DirectoryInfo в .NET. Примерно так:

DirectoryInfo dir = new DirectoryInfo("c:\dir");
FileInfo[] files = dir.GetFiles("*.*");

Но этот запрос отвечает в среднем за 20/30 секунд. Иногда длится 50 секунд. Это слишком много. Я хочу оптимизировать это. После некоторого поиска в Google я обнаружил, что это можно сделать с помощью WMI. Но я не добьюсь успеха. Я получаю сообщения об ошибках типа «RPC-сервер недоступен», и у меня нет доступа для изменения разрешений или служб на этом компьютере.

У кого-нибудь есть еще идеи?

Ответы [ 2 ]

0 голосов
/ 18 февраля 2009

Как насчет службы WCF, работающей на удаленной машине? Это может занять запрос, а затем вернуть объект массовой передачи данных с графом объектов из папок и файлов.

Я понимаю, что это может не подходить для вашей архитектуры, но если у вас есть контроль над обеими средами, это может быть путь вперед?

0 голосов
/ 18 февраля 2009

Вы не сможете добиться более высокой производительности в сети. Вы боретесь с задержкой в ​​сети, а также со всем, что может повлиять на производительность на удаленной машине (например, с диском или высокой загрузкой процессора).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...