在Windows 2003服务器上,我有一个应用程序处理请求,并将它们作为第二个进程来处理这些存储的请求的队列存储在一个文件夹中。 但有时文件数量往往达到10万。
使用Windows资源pipe理器,甚至在命令提示符目录似乎没有多less解决scheme,我找出有多less文件存储。 这也需要太多的时间,CPU和I / O。
有什么build议么?
我不确定这个文件夹有多快能工作,但值得一试。
将下面的代码保存在.vbs文件中。 然后,像这样从CMD提示符运行它:
CSCRIPT FileCount.vbs C:\Insert\Your\Path\Here.
它只计算path根目录中的文件,但可以修改为包含子文件夹。
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%
如果您想在所有子文件夹中recursionsearch,则需要使用开关“/ S”
那么在这种情况下,如果没有内置的实用程序可以帮助我写下这个小小的窃听器:
使用系统; 使用System.IO;
namespace FileCount { class Program { static void Main(string[] args) { var files = Directory.GetFiles("."); Console.Write(files.Length); } } }
但我希望我不必这样做。 感谢大家 :)
更新:我忘了说它是在.NET(任何版本)和语言是C#。