[英]Exporting DataTable to CSV on desired location (folder) using c#
我被赋予了将数据导出到csv文件中的任务。 除了目标文件夹,其他所有东西都工作正常。 每次它将csv文件保存在Windows下载(C:\\ Users \\ xxxpurt \\ Downloads)文件夹中。 我想使用所需的位置通过指定可以从SaveFileDialog获取的位置来保存csv文件。 这可能吗? 如果是这样,我如何指定从saveFiledialog检索到的路径以进行响应? 钽
string location = string.Empty;
SaveFileDialog saveCSVDialog = new SaveFileDialog();
saveCSVDialog.InitializeLifetimeService();
saveCSVDialog.Filter = "csv files (*.csv)|*.csv|All files (*.*)|*.*";
saveCSVDialog.FilterIndex = 1;
saveCSVDialog.DefaultExt = ".csv";
saveCSVDialog.RestoreDirectory = true;
DialogResult res = STAShowDialog(saveCSVDialog); //STAShowDialog uses threading
if (res == DialogResult.OK)
{
location = saveCSVDialog.FileName;
}
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", string.Format("attachment;filename={0}", Server.HtmlEncode(location)));
Response.Charset = "";
Response.ContentType = "application/text";
.........Fetch columns and rows using loops.........
Response.Output.Write(sb.ToString());
Response.Flush();
Response.End();
如注释中所述,您不能在服务器上决定客户端上文件的存储位置。 而且,您也不应该在服务器代码中创建UI元素。
如果要在客户端上强制执行保存文件对话框,可以尝试以下操作:
Response.AppendHeader("content-disposition", "attachment; filename=somefile.csv");
Response.ContentType = "text/csv";
但是,最终由客户端浏览器决定如何使用它,大多数浏览器会显示一个保存文件对话框。
放
SaveFileDialog saveCSVDialog = new SaveFileDialog();
作为阶级财产和
saveCSVDialog.InitializeLifetimeService();
saveCSVDialog.Filter = "csv files (*.csv)|*.csv|All files (*.*)|*.*";
saveCSVDialog.FilterIndex = 1;
saveCSVDialog.DefaultExt = ".csv";
saveCSVDialog.RestoreDirectory = true;
在类构造函数中
因为如果将它们放在一个方法中,则每次调用该方法时,都会得到SaveFileDialog
新实例
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.