Library trouble (17)

Read the instructions below, but am still having no luck.

Set up a folder called “libraries” in admin>documents>aduino, but when I zip libraries in there they still don’t show up in the menu.

for example, iv downloaded the Pattern.h from here http://www.stefanomanni.it/arduino/2009/03/29/scrolling-text-with-a-5x7-led-matrix/

then unpacked the files Pattern.h, textScroll.pde into admin>documents>aduino/libraries

but when i load the sketch i get

21: error: Pattern.h: No such file or directory In function ‘void scrollString(char*)’:
Bad error line: -5

full code

/* 29 mar 09 */
/* Text scrolling with a 5x7 led matrix.
/* ATTENTION: Copy Pattern.h file in ./hardware/libraries/Pattern/ directory */

#include <avr/pgmspace.h>
#include <Pattern.h>
#define DELAY 100

int dataIn = 2;
int load = 4;
int clock = 3;

int matrix[7][5]={{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},};

int e = 0;     // just a varialble

// define max7219 registers
byte max7219_reg_noop        = 0x00;
byte max7219_reg_digit0      = 0x01;
byte max7219_reg_digit1      = 0x02;
byte max7219_reg_digit2      = 0x03;
byte max7219_reg_digit3      = 0x04;
byte max7219_reg_digit4      = 0x05;
byte max7219_reg_digit5      = 0x06;
byte max7219_reg_digit6      = 0x07;
byte max7219_reg_digit7      = 0x08;
byte max7219_reg_decodeMode  = 0x09;
byte max7219_reg_intensity   = 0x0a;
byte max7219_reg_scanLimit   = 0x0b;
byte max7219_reg_shutdown    = 0x0c;
byte max7219_reg_displayTest = 0x0f;

void putByte(byte data) {
  byte i = 8;
  byte mask;
  while(i > 0) {
    mask = 0x01 << (i - 1);      // get bitmask
    digitalWrite( clock, LOW);   // tick
    if (data & mask){            // choose bit
      digitalWrite(dataIn, HIGH);// send 1
    }else{
      digitalWrite(dataIn, LOW); // send 0
    }
    digitalWrite(clock, HIGH);   // tock
    --i;                         // move to lesser bit
  }
}


void sendToMax( byte reg, byte value) {    
  digitalWrite(load, LOW);       // begin     
  putByte(reg);                  // specify register
  putByte(value);
  digitalWrite(load, LOW);       // and load da shit
  digitalWrite(load,HIGH); 
}


void setup () {
  //wired up to max7219
  pinMode(dataIn, OUTPUT);
  pinMode(clock,  OUTPUT);
  pinMode(load,   OUTPUT);
  
  //initiation of the max 7219
  sendToMax(max7219_reg_decodeMode, 0x00);  // not using  digits
  sendToMax(max7219_reg_scanLimit, 0x06); //scan rows 1 2 3 4 5 6 7 
  sendToMax(max7219_reg_shutdown, 0x01);    // not in shutdown mode
  sendToMax(max7219_reg_displayTest, 0x00); // no display test
  sendToMax(max7219_reg_intensity, 0xf);     // range: 0x00 to 0x0f
  
  for (e=1; e<=7; e++) {    // empty registers, turn all LEDs off
  sendToMax(e,0);
  }
}  

//I don't know why pow function doesn't work correctly.
//So i prefer to write my personal version of this.
int power(int base, int ex){
int i=1;
int tot=1;
if(i==0) return(1);
else{
      while(i<=ex){
      tot=tot*base;
      i++;
      }
      return(tot);
}
}

void lightOn(){
int i,j,k;

   //light on matrix
     for(i=0;i<7;i++){
     k=0;
     for(j=0;j<5;j++){
    
     if(matrix[i][j]==1) k=k+power(2,j); 
     }
     sendToMax(i+1,k);
     }
}


void scrollChar(const int pattern[7][5]){

    int i,j,k=0;

while(k<5)    //column of pattern
{
    //shift rigidly columns from right to left
    for(j=0;j<4;j++){  //column
      for(i=0;i<7;i++){  //row
      matrix[i][j]= matrix[i][j+1];
    }
    }
    
    //queue k-th column of pattern
    for(i=0;i<7;i++){  //row
       matrix[i][4]=pgm_read_byte(&((pattern)[i][k]));     
    }
    
    lightOn();
    delay(DELAY);    
    k++;   
}//end while

insertSpace();
}


//insert a space (two column filled with zeros) beetween two chars
void insertSpace(){
 int i,j,k=0;

while(k<2)    //queue two column of zero
{
    //shift rigidly columns from right to left
    for(j=0;j<4;j++){  //column
      for(i=0;i<7;i++){  //row
      matrix[i][j]= matrix[i][j+1];
    }
    }
    
    //queue two column filled with zeros
    for(i=0;i<7;i++){  //row
       matrix[i][4]=0;     
    }
    
    lightOn();
    delay(DELAY);    
    k++;   
}//end while
}


void scrollString(char * s){
int i=0;
   while (s[i])
  {  
    //symbols and letters
    if(s[i]==' ')
      scrollChar(PATTERN_BLANK);
    if(s[i]=='A')
      scrollChar(PATTERN_A);
    if(s[i]=='B')
      scrollChar(PATTERN_B);
    if(s[i]=='C')
      scrollChar(PATTERN_C);
    if(s[i]=='D')
      scrollChar(PATTERN_D);
    if(s[i]=='E')
      scrollChar(PATTERN_E);
    if(s[i]=='F')
      scrollChar(PATTERN_F);
    if(s[i]=='G')
      scrollChar(PATTERN_G);
    if(s[i]=='H')
      scrollChar(PATTERN_H);
    if(s[i]=='I')
      scrollChar(PATTERN_I);
    if(s[i]=='J')
      scrollChar(PATTERN_J);
    if(s[i]=='K')
      scrollChar(PATTERN_K);
    if(s[i]=='L')
      scrollChar(PATTERN_L);
    if(s[i]=='M')
      scrollChar(PATTERN_M);
    if(s[i]=='N')
      scrollChar(PATTERN_N);
    if(s[i]=='O')
      scrollChar(PATTERN_O);
    if(s[i]=='P')
      scrollChar(PATTERN_P);
    if(s[i]=='Q')
      scrollChar(PATTERN_Q);
    if(s[i]=='R')
      scrollChar(PATTERN_R);
    if(s[i]=='S')
      scrollChar(PATTERN_S);
    if(s[i]=='T')
      scrollChar(PATTERN_T);
    if(s[i]=='U')
      scrollChar(PATTERN_U);
    if(s[i]=='V')
      scrollChar(PATTERN_V);
    if(s[i]=='W')
      scrollChar(PATTERN_W);
    if(s[i]=='X')
      scrollChar(PATTERN_X);
    if(s[i]=='Y')
      scrollChar(PATTERN_Y);
    if(s[i]=='Z')
      scrollChar(PATTERN_Z);

    //numbers
    if(s[i]=='1')
      scrollChar(PATTERN_1);
    if(s[i]=='2')
      scrollChar(PATTERN_2);
    if(s[i]=='3')
      scrollChar(PATTERN_3);
    if(s[i]=='4')
      scrollChar(PATTERN_4);
    if(s[i]=='5')
      scrollChar(PATTERN_5);
    if(s[i]=='6')
      scrollChar(PATTERN_6);
    if(s[i]=='7')
      scrollChar(PATTERN_7);
    if(s[i]=='8')
      scrollChar(PATTERN_8);
    if(s[i]=='9')
      scrollChar(PATTERN_9);
    if(s[i]=='0')
      scrollChar(PATTERN_0);

 i++;
}//end while
}


void loop () {
    scrollString("ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789");   //use capital letters         
  }

To install, unzip the library to a sub-directory of the libraries sub-directory of your Arduino sketchbook directory (shown in the Arduino preferences dialog). If this is the first library you’ve installed, you’ll need to create the libraries directory. After unzipping the library, (re-)launch the Arduino environment; you should see the library in the Import Library menu.

Did you put the Pattern.h file directly into the libraries folder? You'll need an intermediate folder, like: Pattern/