Как быстро посчитать количество файлов в папке?

На Windows 2003 Server у меня есть приложение, которое обрабатывает запросы и сохраняет их в папке в виде очереди, куда приходит второй процесс и обрабатывает эти сохраненные запросы. Однако иногда количество файлов достигает 100 000.

Использование Windows Explorer или даже dir в командной строке не похоже на решение для меня, чтобы узнать, сколько файлов там хранится. Это также занимает слишком много времени, процессора и ввода-вывода.

Какие-либо предложения?

3 ответа

Решение

Хорошо, в этом случае, если нет встроенных утилит, которые могли бы помочь, я написал этот небольшой пагубный код:

используя Систему; используя System.IO;

namespace FileCount
{
    class Program
    {
        static void Main(string[] args)
        {
            var files = Directory.GetFiles(".");
            Console.Write(files.Length);
        }
    }
}

но я надеялся, что мне не нужно было этого делать. Всем спасибо:)

Обновление: я забыл сказать, что это в.NET (любая версия) и язык C#.

Я не уверен, насколько быстро это будет работать на такой большой папке, но стоит попробовать.

Сохраните код ниже в файле.vbs. Затем запустите его из командной строки CMD следующим образом:

CSCRIPT FileCount.vbs C:\Insert\Your\Path\Here.

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

Dim oArgs
Set oArgs = WScript.Arguments

If oArgs.Count >= 1 Then
   WScript.Echo FileCount(oArgs(0))   
End If

'------------------------------------------------------------
'
'------------------------------------------------------------
Function FileCount(sPath)
   Dim oFSO
   Dim oFolder
   Dim oFiles

   Set oFSO = CreateObject("Scripting.FileSystemObject")
   Set oFolder = oFSO.GetFolder(sPath)
   Set oFiles = oFolder.Files
   FileCount = oFiles.Count
End Function

Вы можете использовать скрипт на этой странице и назвать его так:

 call filecount.bat C:\temp filecount /S
 echo %filecount%

Ключ "/S" необходим, если вы хотите рекурсивно искать во всех подпапках

Другие вопросы по тегам