Let's say your sketch folder structure looks like this:
FooSketch
|_FooSketch.ino
|_src
|_FooLib
|_FooLib.h
|_FooLib.cpp
You would include FooLib.h in your sketch like this:
#include "src/FooLib/FooLib.h"
Unfortunately there is a problem in quite a few Arduino libraries. Let's say in FooLib.cpp they put the following line:
#include <FooLib.h>
That's actually incorrect include syntax for that usage but because it normally works it slips through testing. That tells the compiler to search the standard include paths for FooLib.h. If the library was installed in one of the standard library folders, that would work but since you don't have the library in one of those folders you get a file not found error. The solution is to edit FooLib.cpp to use the correct include syntax:
#include "FooLib.h"
which tells the compiler to look in the current folder before searching the standard include paths.