private void InitFTPTransfer(string filePath)
{
string[] ftpAddress = ddcdao.ddcAddress.Split(new string[] { "http://" }, StringSplitOptions.None);
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://" + ftpAddress[1] + "/root/" + Path.GetFileName(filePath));
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential(Properties.Settings.Default.SysFTPID, Properties.Settings.Default.SysFTPPassword);
byte[] fileContents = File.ReadAllBytes(filePath);
request.ContentLength = fileContents.Length;
Stream requestStream = request.GetRequestStream();
requestStream.Write(fileContents, 0, fileContents.Length);
requestStream.Close();
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
response.Close();
}
特定のファイルをパスにアップロードする上記のコードがあります。
ftp 内で、ファイルをアップロードする特定のディレクトリを設定するにはどうすればよいですか?
この場合、Linux が組み込まれたマシンにアップロードするので、/root/somedirectory の下にある必要があります。
編集:リクエストパスにディレクトリパスを実際に含めるという提案を試みましたが、request.GetRequestStream(); の行に「システムエラー」というメッセージとともに System.Net.WebException をスローするだけです。