#include <string.h>
#include <stddef.h>
#include <libgen.h>
#include <stdio.h>
/* This program parses the path given in the argument into directories
* and filename, creates the directory structure and creates an
* empty file as well */
int
main (int argc, char **argv)
{
const char delimiters[] = "/\\"; /* File delimiters */
char *token, *oldtoken, *cp;
const char program_directory = getcwd (NULL, 0); /* Program directory */
/* Create copy of path string */
cp = malloc (strlen (argv[1]));
strcpy (cp, argv[1]);
/* Split string into tokens */
token = strtok (cp, delimiters);
printf ("Directory = ");
/* While token is not NULL */
while (1)
{
oldtoken = malloc (strlen (token));
strcpy (oldtoken, token); /* Copy current token */
token = strtok (NULL, delimiters); /* Go to the next token */
/* If nexxt token is NULL, it is the last part and assumed to
* be a filename */
if (token == NULL)
{
printf ("\nFilename = %s\n", oldtoken);
/* Create an empty file of that name */
FILE *fp;
fp = fopen (oldtoken, "w");
fclose (fp);
break;
}
/* Otherwise it is a directory */
else
{
printf ("%s ", oldtoken);
mkdir (oldtoken, 0755); /* Create the directory */
chdir (oldtoken); /* Go there */
}
free (oldtoken);
}
printf ("\n");
/* Free any memory elements */
free (cp);
oldtoken = NULL;
chdir (program_directory);
}
Monday, March 27, 2006
Parsing filename and directories out of given path in C
Sample code for how to parse directory structure and path names for a given path string in C. I will use this for the webpage retreiver project I am working on.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment