基于WCF的远端打开进程和删除文件

  • Post author:
  • Post category:其他



1. 界面设计,三个Textbox接受文件名和参数,两个button,两个lable显示是否成功


在这里插入图片描述


2. 接口中启动进程和删除文件的方法

public interface IService1
    {

        [OperationContract]
        bool StartProcess(string fileName, string processName);

        [OperationContract]
        bool DeleteFile(string filePath);

        [OperationContract]
        
        CompositeType GetDataUsingDataContract(CompositeType composite);

        // TODO: 在此添加您的服务操作
    }


3. 实现启动进程方法

 public bool StartProcess(string fileName, string processName)
        {
            try
            {
                Process myprocess = new Process();
                myprocess.StartInfo.FileName = fileName;
                myprocess.StartInfo.Arguments = processName;
                myprocess.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
                myprocess.Start();
                return true;
            }
            catch (Exception)
            {
                return false;
            }
            
        }


4. 实现删除文件的方法

public bool DeleteFile(String filePath)
        {
            if (File.Exists(@filePath))
            {
                try
                {
                    File.Delete(@filePath);
                    return true;
                }
                catch (Exception)
                {

                    return false;
                }
            }
            else
                return false;
        }


5.点击事件,用lable显示是否成功

 private void button_Click(object sender, RoutedEventArgs e)
        {
            Service1Client client1 = new Service1Client();
            bool flag1 = client1.StartProcess(textbox1.Text,textbox2.Text);
            if (flag1)
            {
                lable1.Content = "进程启动成功";
            }
            else
                lable1.Content = "进程启动失败";
            
        }

        private void button2_Click(object sender, RoutedEventArgs e)
        {
            Service1Client client2 = new Service1Client();
            bool flag2 = client2.DeleteFile(textbox3.Text);
            if (flag2)
            {
                lable2.Content = "删除成功";
            }
            else
                lable2.Content = "删除失败";
        }


结果:


在这里插入图片描述

在这里插入图片描述


问题讨论:


1.提示:结点在侦听可以接受消息的 XXXXXX 这通常是由于不正确的地址或者 SOAP 操作导致的。方法:更新服务引用解决。

2.仅输入无法判断文件是否存在。方法:在文件路径前加@解决。



版权声明:本文为weixin_44223180原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。