如何查找 .pdf 文件并将其复制到剪贴板
How to find and copy .pdf file to clipboard
我正在尝试将 pdf 文件复制到剪贴板,以便稍后可以通过 Ctrl+V
粘贴它。
下面的代码可以找到一个文件,但我不知道如何将它复制到剪贴板。
找到 pdf
文件后如何复制?
private void copyToClipbard_Click(object sender, RoutedEventArgs e)
{
var file = Directory.GetFiles(@"C:\MyFolder\", "myPDFFile.pdf", SearchOption.AllDirectories).FirstOrDefault();
Clipboard.SetDataObject(file);
}
我收到错误:
An unhandled exception of type 'System.ArgumentNullException' occurred in PresentationCore.dll
编辑:我也尝试了以下方法,我没有收到任何错误,但它没有复制文件。
编辑:以下代码确实有效,我没有输入正确的路径,不过我更喜欢 jasttim
的回答。
private void copyToClipbard_Click(object sender, RoutedEventArgs e)
{
var file = Directory.GetFiles(@"C:\MyFolder\", "myPDFFile.pdf", SearchOption.AllDirectories).FirstOrDefault();
var dataObj = new DataObject();
string[] fileName = new string[1];
fileName[0] = file;
dataObj.SetData(DataFormats.FileDrop, fileName, true);
Clipboard.SetDataObject(dataObj, true);
}
尝试使用 "Clipboard" class.
它具有将数据放入 Windows 剪贴板所需的所有方法。
StringCollection paths = new StringCollection();
paths.Add("c:\file.pdf");
Clipboard.SetFileDropList(paths);
我正在尝试将 pdf 文件复制到剪贴板,以便稍后可以通过 Ctrl+V
粘贴它。
下面的代码可以找到一个文件,但我不知道如何将它复制到剪贴板。
找到 pdf
文件后如何复制?
private void copyToClipbard_Click(object sender, RoutedEventArgs e)
{
var file = Directory.GetFiles(@"C:\MyFolder\", "myPDFFile.pdf", SearchOption.AllDirectories).FirstOrDefault();
Clipboard.SetDataObject(file);
}
我收到错误:
An unhandled exception of type 'System.ArgumentNullException' occurred in PresentationCore.dll
编辑:我也尝试了以下方法,我没有收到任何错误,但它没有复制文件。
编辑:以下代码确实有效,我没有输入正确的路径,不过我更喜欢 jasttim
的回答。
private void copyToClipbard_Click(object sender, RoutedEventArgs e)
{
var file = Directory.GetFiles(@"C:\MyFolder\", "myPDFFile.pdf", SearchOption.AllDirectories).FirstOrDefault();
var dataObj = new DataObject();
string[] fileName = new string[1];
fileName[0] = file;
dataObj.SetData(DataFormats.FileDrop, fileName, true);
Clipboard.SetDataObject(dataObj, true);
}
尝试使用 "Clipboard" class.
它具有将数据放入 Windows 剪贴板所需的所有方法。
StringCollection paths = new StringCollection();
paths.Add("c:\file.pdf");
Clipboard.SetFileDropList(paths);