home *** CD-ROM | disk | FTP | other *** search
/ Geek 6 / Geek-006.iso / linux / video / xmovie-1.5.3.tar.gz / xmovie-1.5.3.tar / xmovie-1.5.3 / guicast / filesystem.h < prev    next >
C/C++ Source or Header  |  2000-11-29  |  3KB  |  85 lines

  1. #ifndef FILESYSTEM_H
  2. #define FILESYSTEM_H
  3.  
  4. #include "arraylist.h"
  5. #include "bcwindowbase.inc"
  6.  
  7. class FileItem
  8. {
  9. public:
  10.     FileItem();
  11.     FileItem(char *path, char *name, int is_dir, long size, int month, int day, int year);
  12.     ~FileItem();
  13.  
  14.     int set_path(char *path);
  15.     int set_name(char *name);
  16.     int reset();
  17.     char *path;
  18.     char *name;
  19.     int is_dir;
  20.     long size;
  21.     int month;
  22.     int day;
  23.     int year;
  24. };
  25.  
  26. class FileSystem
  27. {
  28. public:
  29.     FileSystem();      // sets the working directory to the user
  30.     virtual ~FileSystem();
  31.  
  32. // Load the new directory and change current_dir to it.
  33. // This does not complete the dir path.
  34.     int update(char *new_dir = 0);
  35.  
  36. // Complete the path in the string and change to the directory in the string.
  37. // Does not change new_dir
  38.     int change_dir(char *new_dir);
  39. // Set the current_dir to something without completing the path.
  40.     int set_current_dir(char *new_dir);
  41.  
  42.     int move_up();
  43.     char *get_current_dir();
  44.     int set_filter(char *new_filter);
  45.     int set_show_all();     // show hidden files
  46.     int set_want_directory();
  47.     int create_dir(char *new_dir_);    // create a new directory
  48.     int complete_path(char *filename);   // use the filename and the current_dir to create a complete filename
  49.     int is_dir(const char *new_dir_);      // return 0 if the text is a directory
  50.     int extract_dir(char *out, const char *in);    // extract the directory from the path
  51.     int extract_name(char *out, const char *in);    // extract the name from the path
  52.     int join_names(char *out, char *dir_in, char *name_in);    // combine a directory and filename
  53.     long get_date(char *filename);        // get the date of the filename modification
  54.     long get_size(char *filename);        // Get the number of bytes in the file.
  55.     int add_end_slash(char *new_dir);
  56.     int total_files();
  57.     FileItem* get_entry(int entry);
  58.  
  59.     int parse_tildas(char *new_dir);     // expand tildas
  60.     int parse_directories(char *new_dir);  // add directories
  61.     int parse_dots(char *new_dir);         // move up directory tree after expanding tildas
  62.  
  63. // Array of files and directories in the directory pointed to by current_dir.
  64. // Directories are first.
  65.     ArrayList<FileItem*> dir_list;
  66.  
  67. private:
  68.     int sort(ArrayList<FileItem*> *dir_list);
  69. // Combine the directories and files into the master list, directories first.
  70.     int combine(ArrayList<FileItem*> *dir_list, ArrayList<FileItem*> *file_list);
  71. // Return whether or not the string is the root directory.
  72.     int is_root_dir(char *path);
  73. // Whether or not the file passes the current filter.
  74.     int test_filter(FileItem *file);
  75.     int reset_parameters();
  76.     int delete_directory();
  77.     char filter[BCTEXTLEN];     // what filenames have to end in to get displayed
  78.     int want_directory;
  79.     int show_all_files;       // shows . files
  80.     char current_dir[BCTEXTLEN];
  81.     char string[BCTEXTLEN], string2[BCTEXTLEN];
  82. };
  83.  
  84. #endif
  85.