我有一个程序,我需要能够从远程计算机复制并粘贴到我的本地计算机。
我的问题是,当我使用
时 val httpConf = http
.baseURL("http://192.168.1.30:8080")
.acceptHeader("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
.acceptEncodingHeader("gzip, deflate")
.acceptLanguageHeader("en-US,en;q=0.5")
.userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:16.0) Gecko/20100101 Firefox/16.0")
val scn = scenario("SCENARIO2")
.exec(http("open")
.get("/")
.check(header("Location").saveAs("url")))
.exec(session => {
val urlN = session.get("url").asOption[String]
print(urlN.getOrElse("nothing"))
session
})
它返回一个包含0个元素的集合,无论我尝试复制多少元素。
我尝试过:
Clipboard.GetDropList();
我也试过(BoltBait's answer):
if (Clipboard.ContainsFileDropList())
{
foreach (string item in Clipboard.GetFileDropList())
{
File.Copy(item, path + '\\' + Path.GetFileName(item));
}
}
两个版本都返回一个空集合。
问题出在哪里?知道:
答案 0 :(得分:1)
您获得空集合的原因是剪贴板不包含DataFormats.FileDrop
格式的任何数据。
相反,在通过远程桌面复制远程计算机上的某些文件时(启用剪贴板共享时),文件内容将直接放在剪贴板中。剪贴板将包含以下格式的数据:
FILEGROUPDESCRIPTOR
(实际上,FILEGROUPDESCRIPTORA
或FILEGROUPDESCRIPTORW
,在您的系统上 - 第二个)CFSTR_FILECONTENTS
CFSTR_PREFERREDDROPEFFECT
理论上,您可以尝试遍历FILEGROUPDESCRIPTOR
个对象,并将每个文件从剪贴板中存储为CFSTR_FILECONTENTS
。
但我发现bug report描述了这只适用于Windows窗体中的第一个文件。因此,您必须通过调用本机方法使用P / Invoke实现它。