All pastes #435808 Raw Edit

Stuff

public text v1 · immutable
·published 2007-04-12 04:36 UTC
rendered paste body
char* create_indices(char *dir)
{

        // Create a pointer to a directory.

        DIR *dirPtr;

        // Create a pointer to a directory entry.

        struct dirent *dirEntry;

        // A variable to store the name of the directory.

        char *duplicate;

        // String to store the argument for the indexfile.

        char *finalListFiles = (char *) malloc(sizeof(char *)*40);

       // Open the directory.

        dirPtr=opendir(dir);

        // This loop goes through the given directory, and concatenates the
        // filenames, except "." and "..", to the string  finalListFiles.
        while (dirPtr!=NULL && (dirEntry=readdir(dirPtr))!=NULL)
        {
                if (strcmp(dirEntry->d_name,".")!=0 && strcmp(dirEntry->d_name,"..")!=0)
                {
                        // Create the duplicate of the string containing directory name.

                        duplicate=strdup(dir);

                        // Get the name of a unique file in the given directory.

                        strncat(duplicate,dirEntry->d_name,sizeof(dirEntry->d_name));

                        // Concatenate the indexfile argument (i.e. finalListFiles),
                        // directory name, filename, and a space to act as delimiter.


                        strncat(strncat(finalListFiles," ",1), duplicate, strlen(duplicate));

                }
        }

        // Close the directory.

        closedir(dirPtr);

        // Return the argument for an indexfile.

        return finalListFiles;

}