【问题标题】:putting a stream in the clipboard将流放入剪贴板
【发布时间】:2009-12-09 06:50:57
【问题描述】:

让我们从最终目标开始 -
我需要能够将文件粘贴到本地文件系统中,该文件是从 Web 响应流中获取的。

我认为最好的做法是在剪贴板中放入一些东西,当粘贴操作发生时会通知我,这样我就可以运行异步请求,等待响应,然后在流中发送到文件系统。有没有可能做这样的事情?
如果没有,也许我可以在复制操作中发送请求,获取流(甚至可能将其完全复制到MemoryStream,以便我可以关闭响应),然后以某种方式将其放入剪贴板中,以便粘贴“溢出”这一切?

这里有人对我有什么建议或指点吗?

【问题讨论】:

标签: c# stream clipboard


【解决方案1】:

也许您可以将文件保存到 Temp 文件夹(Path.GetTempPath()),然后使用常规的 windows 复制/粘贴机制(Clipboard.SetFileDropList

【讨论】:

    【解决方案2】:

    我找到了this 问题,其中包含指向 CodeProject 文章的链接,该文章解释了我应该做什么。目前正在尝试自己弄清楚。

    【讨论】:

      【解决方案3】:

      此示例将网格的内容保存到临时文件中,并将所有行加载到剪贴板中,以便将它们粘贴到 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());
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-24
        • 2022-06-18
        • 1970-01-01
        • 2012-01-19
        • 2023-04-08
        相关资源
        最近更新 更多