Project 3 - TBA

Due TBA

For this project you will implement a command-line based tool that will allow the user to view a list of all files in a given directory and its subdirectories, and will allow the user to upload selected files to a Google Documents account.

Requirements

    1. The absolute path of a directory will be passed as input to the program at the command line. A sample launch of the program would look as follows: java Driver /Users/srollins/Desktop/sampledir
  1. At startup, the program will recursively traverse the given directory and build a list of all files that appear in the directory or any directory that is a descendant of the directory provided.
    1. The user may select from the following options:
      1. List all files found sorted by the last modified date of the files.
      2. List all files found sorted alphabetically by the name of the files.
      3. List all files with name containing a pattern specified by the user (e.g., java would list all files with names containing the string java).
      4. Upload to Google Docs. Allow the user to provide a Google Docs name and password and select a txt file. Note, the user can only upload a file with name ending with .txt. Once information has been provided, upload the file to the specified Google Docs account.
      5. Exit the program.
    2. You will implement the design outlined in the javadoc found here: Javadoc for Required Design. You must receive explicit permission, via email, if you wish to deviate from this design.

A sample run of your program would look as follows: Sample Run

Notes

    1. You are required to accept a command line parameter. See the instructor during office hours if you have questions about this.
    2. You are required to use inheritance, specifically your DocumentList class must extend ArrayList.
    3. You are required to use recursion to traverse the given directory and all directories that are descendants of the given directory.
    4. You are required to implement a sorting algorithm. Please see Chapter 10 of your text for more information on sorting.
    5. It is recommended that you implement the upload to Google Docs last. Get everything else working before implementing the UploadInfo and DocUploader classes.

Please submit your work in an SVN directory https://www.cs.usfca.edu/svn/<username>/cs112/project3