让我们从最终目标开始 -
我需要能够将文件粘贴到本地文件系统中,该文件系统是从Web响应流中获取的。
我认为最好的做法是以某种方式在剪贴板中放置一些内容,以便在粘贴操作发生时通知我,这样我就可以运行异步请求,等待响应,然后将流发送到文件系统。是否有可能做到这样的事情?
如果没有,也许我可以在复制操作上发送请求,获取流(甚至可以将其完全复制到MemoryStream
,这样我就可以关闭响应),并以某种方式将其放入剪贴板中以便粘贴只是“溢出”这一切?
这里有人对我有任何建议或指示吗?
答案 0 :(得分:1)
也许您可以将文件保存到Temp文件夹(Path.GetTempPath()),然后使用常规的Windows复制/粘贴机制(Clipboard.SetFileDropList)
答案 1 :(得分:1)
我找到了this个问题,链接到CodeProject文章,解释了我应该做什么。现在试着弄清楚自己。
答案 2 :(得分:0)
此示例将网格内容保存到临时文件,并将所有行加载到剪贴板中,以便将它们粘贴到Excel中:
String filename = Path.Combine(Path.GetTempPath(), "grid.csv");
using (Stream stream = new MemoryStream())
{
this.Grid.Export(stream,new GridViewExportOptions() {Format = ExportFormat.Csv, ShowColumnHeaders = true});
stream.Position = 0;
using (StreamReader r = new StreamReader(stream))
{
Clipboard.SetData(DataFormats.CommaSeparatedValue, r.ReadToEnd());
}
}