Basically, you need a "\" between the "Category_Id" and the "subcategory_id"
At the moment, (assuming your Cat ID is "ABC" and your sub cat is "DEF") you are asking teh system to create
D:\Temp\ABC
And then
D:\Temp\ABCDEF
When what you want is
D:\Temp\ABC\DEF
The best way to do this is to use Path.Combine:
string path = Path.Combine(Server.MapPath(@"~/Documents/Category/"), category_id, subcategory_id);
Directory.CreateDirectory(path)
As this will add and remove slashes as necessary.