C# winSCP错误System.FormatException无效的格式字符串
想要将文件从windows复制到C#中的远程linux计算机,使用winSCP来完成,几乎复制了,但我得到了一个错误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,
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)上如果try/catch被注释掉,代码>行。谢谢。看起来问题出在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)上如果try/catch被注释掉,代码>行。谢谢。看起来问题出在WinSCP的库中。如果在行上放置断点,然后“跨入”和“跨过”直到进入PutFiles
->TouchEventArgs.Read
->如果(reader.GetEmptyElementValue(“modify”,out value))
块,值
参数是什么样的?