C# ftp web请求中的输入字符串格式不正确

C# ftp web请求中的输入字符串格式不正确,c#,string,formatexception,C#,String,Formatexception,我正在ftp服务器上创建一个文件。但在服务器上创建文件之前,我还要检查它是否已经存在。然而,它在系统的大多数部分都运行良好,但我的一个客户有问题。当他运行应用程序时,它抛出system.formatexception i-e输入字符串的格式不正确 我无法理解这个问题。有人能帮我吗 下面是创建文件的代码 public string createFile(string filename1) { StreamWriter sw1 = null;

我正在ftp服务器上创建一个文件。但在服务器上创建文件之前,我还要检查它是否已经存在。然而,它在系统的大多数部分都运行良好,但我的一个客户有问题。当他运行应用程序时,它抛出system.formatexception i-e输入字符串的格式不正确

我无法理解这个问题。有人能帮我吗

下面是创建文件的代码

 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,但它不起作用。但是,当我在系统上使用这些文件名时,它确实可以正常工作。因此,您可以准确地看到发生错误的行。