C# ftp web请求中的输入字符串格式不正确
我正在ftp服务器上创建一个文件。但在服务器上创建文件之前,我还要检查它是否已经存在。然而,它在系统的大多数部分都运行良好,但我的一个客户有问题。当他运行应用程序时,它抛出system.formatexception i-e输入字符串的格式不正确 我无法理解这个问题。有人能帮我吗 下面是创建文件的代码C# ftp web请求中的输入字符串格式不正确,c#,string,formatexception,C#,String,Formatexception,我正在ftp服务器上创建一个文件。但在服务器上创建文件之前,我还要检查它是否已经存在。然而,它在系统的大多数部分都运行良好,但我的一个客户有问题。当他运行应用程序时,它抛出system.formatexception i-e输入字符串的格式不正确 我无法理解这个问题。有人能帮我吗 下面是创建文件的代码 public string createFile(string filename1) { StreamWriter sw1 = null;
public string createFile(string filename1)
{
StreamWriter sw1 = null;
System.Net.FtpWebRequest tmpReq1;
try
{
tmpReq1 = (System.Net.FtpWebRequest)System.Net.FtpWebRequest.Create("ftp://ftp.dunyameri.com/pt/" + filename1);
tmpReq1.Credentials = new System.Net.NetworkCredential("naveed@dunyameri.com", "xxxxx");
FtpWebResponse response = (FtpWebResponse)tmpReq1.GetResponse();
}
catch (WebException ex)
{
FtpWebResponse response2 = (FtpWebResponse)ex.Response;
if (response2.StatusCode == FtpStatusCode.ActionNotTakenFileUnavailable)
{
// I am creating file here
}
else
{
return ex.ToString();
}
}
return "File Created";
}
我在网上搜索过,可能是因为字符串包含0或点。在这个特定的系统案例中,文件名包含点和0。是因为这种类型的文件名吗
谢谢,
Naveed我最好的猜测是
filename1
以/
字符开头。您可以使用Path.Combine
方法来处理这种情况:
var path = Path.Combine("ftp://ftp.dunyameri.com/pt/", filename1);
var tmpReq1 = (System.Net.FtpWebRequest)System.Net.FtpWebRequest.Create(path);
...
Url应该类似于“ftp://”+用户名+:“+密码+”@“+服务器地址+”:“+服务器端口+”/“+文件”
尝试添加端口。类FtpWebRequest没有创建方法请参见链接
链接上显示的示例将WebRequest.Create转换为FtpWebRequest这可能是问题所在在“createFile(string filename1)”中似乎没有出现错误。如果是这样,堆栈应与此类似:
...
System.Convert.ToInt32(String value)
e2erta.e2erta1.YourFtpClass.createFile(string filename1) <- I would expect this line!
e2erta.e2erta1..ctor()
。。。
System.Convert.ToInt32(字符串值)
e2erta.e2erta1.YourFtpClass.createFile(字符串文件名1)尝试部分中的行通过此异常,即使我捕获了web异常,但仍然得到system.formatexception。@NavedQamar文件名1CNTSNWV0CN145.xx.xx.xxx.net-file.csv中的值是什么?这是此特定情况下的值。。。我尝试使用ip 192.001.012.211-file.csv,但它不起作用。但是当我在我的系统上使用这些文件名时,它确实可以正常工作。你能显示你的文件创建代码吗?cntsnwv0cn145.xx.xx.xxx.net-file.csv这是这个特殊情况下的值。。。我尝试使用ip 192.001.012.211-file.csv,但它不起作用。但是,当我在系统上使用这些文件名时,它确实可以正常工作。因此,您可以准确地看到发生错误的行。