我想要devise一个使用C#的应用程序来让容器能够从Windows资源pipe理器中的任何位置拖动一个.xml文件。 然后,得到这个文件的path,调用一个函数来使用.bat文件来处理这个文件。
例如,我将Super.xml文件从Windows资源pipe理器拖到我的应用程序,然后应用程序将使用一个bat文件来处理我刚刚拖入的xml文件。然后,我可以使用记事本++或IE页面输出文件已经被bat文件执行了。
使用这个bat文件的cmd是:x:\ sample.bat super.xml
你可以试试这个代码。 它将允许您将XML文件拖到窗体中,然后显示XML文件的节点。 你可以很容易地修改这个来做你正在描述的内容。 您也可以找到这个链接有用: 拖放文本文件从Windows资源管理器到您的Windows窗体应用程序
using System.Windows.Forms; using System.Xml.Linq; namespace XmlDragDropExample { public partial class Form1 : Form { public Form1() { InitializeComponent(); this.AllowDrop = true; this.DragEnter += new DragEventHandler(Form1_DragEnter); this.DragDrop += new DragEventHandler(Form1_DragDrop); } private void Form1_DragDrop(object sender, DragEventArgs e) { string[] filePaths = (string[])e.Data.GetData(DataFormats.FileDrop); foreach (string fileLoc in filePaths) { var xdoc = XDocument.Load(fileLoc); foreach (var element in xdoc.Root.Descendants()) { textBox1.Text += element.Name + "\r\n"; } } } private void Form1_DragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.Copy; } } }