First you need to write down the steps you require to do the searching. Something like:
Read 'key' file and extract its signature
For each file in directory
Open next file
Read some data (maybe a small amount, maybe all, or maybe just some specific block)
If the key-file signature is in the data of this file
Do file match processing
Do file no match processing (if necessary)
Until (no more files)
Once you have all the steps clearly defined it should not be too difficult to turn that into code.
A folder in a folder is just a new path to search. When you get a directory in your dirent search, you just append a backslash '\\' followed by the directory name to the string you got from argv (or the current path), and start a new search. Say you start your program by:
and your found entry is a directory named Music, you would create a new path C:\Users\Random\Lists\Music and continue with that. Don't forget to ignore directories named . and .. as they lead back up the tree.
Sorry, but that code does not make any sense. I have no idea what the first block of code is supposed to be doing. And in the code following the flushall call, you have made a call to strlen on a pointer returned from malloc. But the memory that it points to has not been initialised with a string, so the value you get will be either zero, or some random invalid number. You must use strlen on the source string (argv) in order to measure it. So your code should be something like:
int length = strlen(argv) + 1; // extra space for trailing null characterchar* entrenceToTheFolderBefore = (char*)malloc(sizeof(char) * length);
for (int i = 0; i < length; i++)
entrenceToTheFolderBefore[i] = argv[i];
You could use strcpy here, but perhaps your teacher has told you not to.
I dont know if i fixed it or not because Just now i saw your comment
but this is how far i got in order to get to the second frole from the first file
but for some odd reason it stopps when i do malloc
Go to ParentNow that I fixed most of the code the last part is which is the loop to find out the name of the second folder
Reminder that The argv has a path to a folder
the program is trying to exit the folder to the fodler before (succeeded)
and now at the last part trying to get the path for the second folder and the file before if it makes any sence
so for some odd reason it doesnt work
the weirder part is when i try to do puts(); on the Dir struct d_name
and it triggers break point
That is what I guessed from looking at all your posts. And that is why I suggested you stop trying random pieces of code, and go and work through some tutorials and reference guides on the basics of C and its run-time libraries. Trying to learn programming from posting questions here is really not a good idea. A few, or many, hours of serious study will serve you much better in the long term.
I have a shared storage pointer with my console application Hercules it is defined as LPVOID most of it is displayable characters but some are just hex characters
When try to construct the string with the following CString constructer
CString mystr((LPCTSTR) mysharedptr,34); tracing it in the visual studio debugger
The code goes off into some MFC code that had an assertion specifically ASSERT(FALSE)