0

私のアプリケーションは、最初のファイルを上書きするのではなく、同じ名前と種類のファイルの複製を (FTP サーバーに) アップロードする方法を教えてください。

2012-11-09.log      52  Text Document       11/9/2012 8:44:00 PM        -rw-rw-r--
2012-11-09.log      49  Text Document       11/9/2012 8:41:00 PM        -rw-rw-r--
2012-11-09.log      59  Text Document       11/9/2012 8:44:00 PM        -rw-rw-r--
2012-11-09.log      53  Text Document       11/9/2012 8:41:00 PM        -rw-rw-r--
2012-11-09.log      57  Text Document       11/9/2012 8:40:00 PM        -rw-rw-r--

FTP サーバーへの書き込み方法については、特別なことは何もありません。Java スニペットを次に示します。

String dest = "ftp://[USERNAME]:[PASSWORD]@[FTP].com/DR/"+Util.putDateStamp() + ".log";
u = new URL(dest);
uc = u.openConnection();
uc.setDoOutput(true);
OutputStream outgoing = uc.getOutputStream();

outgoing.write(dataToSend.getBytes());
outgoing.close();

「ファイルが見つかりません」というエラーが表示されるため、ファイルの名前変更や削除ができません。残念ながら、それを再現しようとしたところ、期待どおりに動作しました。同じ名前の最初のファイルが上書きされたため、エラーを再現できませんでした。FTP サーバーに対する権限が制限されていることに注意してください。それは私のではありません。私の最後の手段は、何らかの形で破損したことを管理者に伝えることです。大したことではありませんが、それがどのように起こったのか分からないのは本当に気になります. ファイルが一意でない場合にファイルの名前を変更するための FTP コマンドがあることは認識していますが、それは問題ではありません。

私の質問は次のとおりです。これはどのようにして起こりましたか。また、再現できないため、どうすれば再発を回避できますか

Util からのコード:

public static String putDateStamp(){
    String currentdate = "";
    Calendar cal = Calendar.getInstance();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    currentdate = sdf.format(cal.getTime());
    return currentdate;
}

編集:

サーバー OS: UNIX タイプ: L8

4

1 に答える 1

0

解決済み - 基本的に、Filezilla はファイル名のスペースのエスケープを許可せず、スペースも表示しません。そのため、カスタム コマンドDEL " filename.log"は file-not-found エラーをスローします。

ファイル名の前にさまざまな数のスペースがあり、おそらく JDatePicker を使用した後にフォームに入力されました。

ファイルは別の FTP クライアントを使用して削除されていました。

于 2013-01-29T14:05:31.877 に答える