• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 286
  • Last Modified:

A simple way to find the number of files under a directory

I'm looking for a simple way to get the number of files an NTFS directory has. Currently, I'm looping with findnext on all the files in the directory, opening each file's catalog and it is quite heavy.
The environment is Visual C++ 5.0 under WindowsNT 4.0.
0
sephi
Asked:
sephi
1 Solution
 
rbrCommented:
I think that findfirst findnext would be the easiest way to get the numbers of file in your directory even it will take some time. Another way is to access the file tree directly but this will be much more complicated.
0
 
rbrCommented:
If you have problems with your findfirst, findnext programm pls post your code.
0
 
sephiAuthor Commented:
findfirst works fine, but I need to loop on all the files in the directory. I'm looking for a way (possibly more complicated to program) to read the directory catalog only and get the file count from there.
0
KuppingerCole Reviews AlgoSec in Executive Report

Leading analyst firm, KuppingerCole reviews AlgoSec's Security Policy Management Solution, and the security challenges faced by companies today in their Executive View report.

 
elfieCommented:
what about just executing, and intercepting the output of
"DIR /S" ? (not knowing NT, just unix)
0
 
nilosCommented:
There is no way to do what you want except find first / next. This can be demonstrated when you try to delete a HUGE directory, full of files, using the Explorer or a plain CMD Del (Deltree is not available in NT). NT, by itself took 30 minutes to delete the Platform SDK and, of course, I'm not using the, useless, trash can.



0
 
sephiAuthor Commented:
The answer I hope to get is the structure of the directory catalog. If I "read" the directory itself, what do I get in the buffer? (this is the way you get directory info in Unix).
0
 
vividhCommented:
Exec the command DIR /s for the directory and open a pipe using popen(as in standard unixes) to read its output. Keep reading the output in a buffer till NULL. You will get the name of the file one at a time. If you want a unix like code I can pass it to you. Please drop me a e-mail at vividh@hotmail.com

0
 
sephiAuthor Commented:
vividh and elfie's suggestion to use the "DIR" command, sounds simple, but the question is how does the DIR command find all the files. It probably uses findfirst/findnext itself, which we already do.

My initial question is, therefore, still open: Can I "read" in some way the directory catalog and get from there, the number of subdirectories and files that lie undeneath this directory?
0
 
rbrCommented:
So why did you accept the answer?
0
 
sephiAuthor Commented:
Is there a way to undo the acceptance?
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Get 10% Off Your First Squarespace Website

Ready to showcase your work, publish content or promote your business online? With Squarespace’s award-winning templates and 24/7 customer service, getting started is simple. Head to Squarespace.com and use offer code ‘EXPERTS’ to get 10% off your first purchase.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now