You cannot do that: download files in production are on a separate computer to which your server code has no access. You cannot use a StreamWriter to write a file directly to the user at all, and you cannot control what happens to it once the download has started as that is totally up to the user and his browser settings. You cannot specify a folder for the file to be saved in at all, or even specify that the file should be saved instead of opened.
Instead you either give teh user a link to click:
<a href="serverFilePath.xlsx" >Click to Save Excel document</a>
Or you send it via the Response object:
byte[] fileContent = File.ReadAllBytes(path);
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.AddHeader("Content-Disposition attachment; filename=myFile.xlsx");
HttpContext.Current.Response.AddHeader("Content-Length", fileContent.Length.ToString());
HttpContext.Current.Response.ContentType = "application/octet-stream";
HttpContext.Current.Response.BinaryWrite(fileContent);
HttpContext.Current.Response.End();