私が作成した単純なC#Windowsアプリケーションを使用してFTPサーバー(EC2)にファイルをアップロードしようとしていました。FTP(C#)で新しいディレクトリを作成できません
問題ディレクトリがすでに存在する場合は、そのディレクトリ内にファイルを作成できます。ただし、ディレクトリが存在しない場合は、ディレクトリを作成できません。
私がチェックしたもの:書き込み権限を二重に確認しました。私はWinSCP経由でログインしました。問題なく、そこに新しいディレクトリを作成できます。私はユーザー特権を与えました。
マイコード:
今private async void FileFTPUpload(string sourcefilepath, string folderPath) {
String ftpurl = @"ftp://xx.xxx.xxx.xxx/" + "trial/12/1.txt";
Console.WriteLine("Ftp url : " + ftpurl);
String ftpusername = "myUserName";
String ftppassword = "myPassword";
try {
string filename = Path.GetFileName(sourcefilepath);
string ftpfullpath = ftpurl;
WebRequest ftp = WebRequest.Create(ftpurl);
ftp.Method = WebRequestMethods.Ftp.MakeDirectory;
ftp.Credentials = new NetworkCredential(ftpusername, ftppassword);
ftp.Method = WebRequestMethods.Ftp.UploadFile;
FileStream fs = File.OpenRead(sourcefilepath);
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);
fs.Close();
Stream ftpstream = ftp.GetRequestStream();
ftpstream.Write(buffer, 0, buffer.Length);
ftpstream.Close();
} catch (Exception ex) {
Console.WriteLine("Exception Occurred : " + ex);
//throw ex;
}
}
、 "裁判/ 12 /" は、その後1.TXTが行われます、存在している場合。そうしないと、私はエラーを取得する:
System.Net.WebException: The remote server returned an error: (553) File name not allowed.
私が起こって、何ではない何か分かりません。いくつかの援助を使うことができました。
ありがとうございます。
編集:これを行うとき: 文字列ftpurl = @ "ftp://xx.xxx.xxx.xxx/" + "trial";
ディレクトリを作成しません。私はちょうど "試練"という名前のファイルを作成します。これを行う
:
String ftpurl = @"ftp://xx.xxx.xxx.xxx/" + "trial/";
は553
「ftp.Method」を2回設定しました。したがって、最初の義務は決して使用されません。これはあなたのコードを2つの要求に分ける必要があります。 – NtFreX
質問を更新しました。それも見てください。 – Xonshiz