C# winSCP错误System.FormatException无效的格式字符串

C# winSCP错误System.FormatException无效的格式字符串,c#,ssh,scp,winscp,C#,Ssh,Scp,Winscp,想要将文件从windows复制到C#中的远程linux计算机,使用winSCP来完成,几乎复制了,但我得到了一个错误 try { // Setup session options SessionOptions sessionOptions = new SessionOptions { Protocol = Protocol.Scp,

想要将文件从windows复制到C#中的远程linux计算机,使用winSCP来完成,几乎复制了,但我得到了一个错误

        try
        {
            // Setup session options

            SessionOptions sessionOptions = new SessionOptions
            {
                Protocol = Protocol.Scp,
                HostName = "192.168.0.2",
                UserName = "opie",
                Password = "opie",
                //SshHostKeyFingerprint = "ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"
            };

            using (Session session = new Session())
            {
                // Connect
                session.DisableVersionCheck = true;
                sessionOptions.GiveUpSecurityAndAcceptAnySshHostKey = true;
                session.Open(sessionOptions);

                // Upload files
                TransferOptions transferOptions = new TransferOptions();
                transferOptions.TransferMode = TransferMode.Binary;

                TransferOperationResult transferResult;
                transferResult = session.PutFiles(@"H:\toupload\*", "/home/opie/test.txt", false, transferOptions);

                // Throw on any error
                transferResult.Check();

                // Print results
                foreach (TransferEventArgs transfer in transferResult.Transfers)
                {
                    //Debug.Log("Upload of {0} succeeded", transfer.FileName);
                    Debug.Log("Upload of " + transfer.FileName + " succeeded");
                }
            }
            Debug.Log("winSCP connection succeeded");
            return;
        }
        catch (Exception e)
        {
            //Debug.Log("Error: {0}" + e);
            Debug.Log("Error:" + e);
            return;
        }
我没有太多的尝试去修复它,因为我不知所措。我不确定还有什么其他方式来格式化文件路径(我想这就是问题所在),我正在格式化它们,就像在给出的示例中一样

给出的错误是:

FormatException:无效的格式字符串
System.DateTime.ParseExact(System.String s,System.String[]格式,IFormatProvider提供程序,DateTimeStyles样式)(at/Users/builduser/buildslave/mono/build/mcs/class/corlib/System/DateTime.cs:1892)
System.Xml.XmlConvert.ToDateTime(System.String s,System.String[]格式,DateTimeStyles样式)
System.Xml.XmlConvert.ToDateTime(System.String s、System.String[]格式)
System.Xml.XmlConvert.ToDateTime(System.String值,XmlDateTimeSerializationMode)
WinSCP.TouchEventArgs.Read(WinSCP.CustomLogReader areader)
WinSCP.Session.PutFiles(System.String localPath、System.String remotePath、Boolean remove、WinSCP.TransferOptions选项)
MovesBoard_Controller.Controller()(位于Assets/MovesBoard_Controller.cs:193)
UnityEngine.Events.InvokableCall.Invoke(System.Object[]args)(位于C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:153)
UnityEngine.Events.InvokableCallList.Invoke(System.Object[]参数)(位于C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:634)
UnityEngine.Events.UnityEventBase.Invoke(System.Object[]参数)(位于C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:769)
UnityEngine.Events.UnityEvent.Invoke()(位于C:/buildslave/unity/build/Runtime/Export/UnityEvent_0.cs:53)
UnityEngine.UI.Button.Press()(位于C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Button.cs:35)
UnityEngine.UI.Button.OnPointerClick(UnityEngine.EventSystems.PointerEventData事件数据)(位于C:/buildslave/unity/build/Extensions/GUI系统/UnityEngine.UI/UI/Core/Button.cs:44)
UnityEngine.EventSystems.ExecuteEvents.Execute(IPointerClickHandler处理程序,UnityEngine.EventSystems.BaseEventData eventData)(位于C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/EventSystem/ExecuteEvents.cs:52)
UnityEngine.EventSystems.ExecuteEvents.ExecuteEvents[IPointerClickHandler](UnityEngine.GameObject目标,UnityEngine.EventSystems.BaseEventData事件数据,UnityEngine.EventSystems.EventFunction1 functor)(位于C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/EventSystem/ExecuteEvents.cs:269)
UnityEngine.EventSystems.EventSystem:Update()

我不认为这有什么关系,但我是在统一的基础上运行的,它是通过按下按钮来触发的


接受任何建议,干杯

顺便说一下,在上一个catch块中,您将异常连接到字符串中,而不是将其作为参数传递给Log方法。是的,这只是因为Debug.Log不支持复合格式字符串,并且Console.WriteLine不为我输出到unity控制台,但我忘了去掉{0}切换到串联时,将进行编辑。异常的消息是什么?如果您注释掉try块,那么异常发生在哪一行?编辑问题以添加异常的完整消息。错误发生在
transferResult=session.PutFiles(@“H:\toupload\*”、“/home/opie/test.txt”、false、transferOptions)上行。谢谢。看起来问题出在WinSCP的库中。如果在行上放置一个断点,然后“Step in”和“Step over”直到进入
PutFiles
->
TouchEventArgs.Read
->
如果(reader.GetEmptyElementValue(“modify”,out value))
块,
参数是什么样子的?顺便问一下,在上一个catch块中,您正在将异常连接到字符串中,而不是将其作为参数传递给Log方法。是的,这只是因为Debug.Log不支持复合格式字符串,并且Console.WriteLine不会为我输出到unity控制台,但我在切换到连接时忘了去掉{0},将进行编辑。异常的消息是什么?如果您注释掉try块,那么异常发生在哪一行?编辑问题以添加异常的完整消息。错误发生在
transferResult=session.PutFiles(@“H:\toupload\*”、“/home/opie/test.txt”、false、transferOptions)上行。谢谢。看起来问题出在WinSCP的库中。如果在行上放置断点,然后“跨入”和“跨过”直到进入
PutFiles
->
TouchEventArgs.Read
->
如果(reader.GetEmptyElementValue(“modify”,out value))
块,
参数是什么样的?