And apologies in turn for my tardiness. I thought I had turned on email for items I was tracking, but it turns out ...
This is a long answer, and it's actually worth an article in the knowledgebase, because it's quite important. I'll see if we can add one. Bear with me while I recap what is stored where in KBPublisher.
Articles first.
Articles are not stored in the kb_file directory. Articles are stored in a My-SQL table Another My-SQL table stores category information. So, for articles, everything is in the tables. Hence if your database is corrupted, you're in trouble. You would want to hope that that you have a backup.
[This is not specific to KBPublisher by the way. Large payroll/office systems like SAP and Seibel, down to smaller personal databases like say, WordPress, work the same way. It's also not specific to databases. If you're using files rather than a database (like those in the kb_file directory) you need to back them up too.]
Back up your database regularly. Your system is only as good as the data you have.
Assuming that you have a backup, you (or your database administrator, if you have one) can get the articles out of the tables by running a simple My-SQL query that gets the category listing and articles in that category.
So what about the kb_file directory?
The kb_file directory contains the files that you (or your users) have uploaded using the Downloads option in KBPublisher. As well as the downloads in this directory, there is a table in My-SQL that contains information about when it was downloaded, which category (or categories) it is stored in and so on.
These downloaded files are all stored in the one directory, as you surmised earlier. This is because you would not normally go to the directory to get information about where the files should go, you use the database to get it for you. One folder can hold a lot of files. [Search Google for "maximum number of files in a folder".]