2011-11-14 12 views
2

私は、リモートFTPサイトにローカルサーバー上のファイルをアップロードするための簡単なFTPコンソールアプリケーションを作成しました。実際にファイルを転送するまでは、すべてうまく動作しているようです。何らかの理由で、指定されたFTPサイトにファイルをアップロードするのではなく、ファイルの種類がなく、FTPサイトのIPと同じ名前のDebugフォルダにファイル全体をnoで保存します。私はこれがVisual Studioのデバッグと関係があると考えています。誰も私にこれに関するいくつかの指導を与えることができますか?C#FTP appがローカルディレクトリにアップロード

ここでは、文字列配列の各ファイルをFTPサイトにアップロードしようとしているコードを示します。

private static void Upload(string ftpServer, string userName, string password, string filename) 
    { 
     using (var client = new WebClient()) 
     { 
      client.Credentials = new NetworkCredential(userName, password); 
      client.UploadFile(ftpServer, "STOR", filename); 
     } 
    } 
+0

'ftpServer'と' filename'の値は何ですか? – Yahia

+0

は、彼らが上記の方法で渡されている、ftpは、文字列 「静的クラスグローバル { パブリック静的な文字列GetIPAddress { GET {リターン 『206.xxx.xxx.xxx』でIPアドレスを渡されます。 } } } ' – John

答えて

1

この方法を使用する代わりに、この方法を使用してください。

//Directory sands for Remote Server Directory ,it must create if dir not exist 
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://serverIP/directory/file"); 
request.Method = WebRequestMethods.Ftp.UploadFile; 

request.Credentials = new NetworkCredential ("username","password"); 

// Copy the contents of the file to the request stream. 
StreamReader sourceStream = new StreamReader("testfile.txt"); 
byte [] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd()); 
sourceStream.Close(); 
request.ContentLength = fileContents.Length; 

Stream requestStream = request.GetRequestStream(); 
requestStream.Write(fileContents, 0, fileContents.Length); 
requestStream.Close(); 

FtpWebResponse response = (FtpWebResponse)request.GetResponse(); 
response.Close(); 

ソース - http://msdn.microsoft.com/en-us/library/ms229715.aspx

+0

これは完璧に、ありがとうございました。 – John

+0

@JohnFlavanおそらくあなたはこれを正しいものとして受け入れることができます。 – Burimi

関連する問題