First a note.
stream_writer = System.IO.File.AppendText("c:\WaterWriter\" & (strSaveAs) & ".txt")
Here the parentheses around strSaveAs aren't necessary and confuse things a little bit. What parentheses mean to VB
in this situation is, "Evaluate the enclosed thing and use the result." So here it's actually creating a new temporary variable with the same value as strSaveAs and using that. It doesn't make any real difference in this case but there are situations where that can be confusing so I try to avoid unnecessary parentheses.
But to the main question. My suspicion is that C:\WaterWriter\Library\ doesn't already exist. The AppendText method will create the file if it doesn't already exist but I don't think it will create directories if they're not already there.
One way to create the directory is to do something like this:
If the directory already exists, it should quietly return without throwing an error.
I think it can even create intermediary directories. For example, if C:\DirA exists, then it can create C:\DirA\DirB\DirC\DirD all at once.