1

libcurl を使用して Apache FtpServer とやり取りする C++ プログラムを作成しています。私はもともとこのLISTコマンドを使用してディレクトリの内容を取得していましたが、得られなかった多くの情報が得られましたが、不要なオーバーヘッドが発生する方法を解析する必要がありました (特に、何十万ものファイル)。さらに、有効なタイム スタンプが必要で、年を含まない省略形が得られました (そのため、1 月 1 日に、私のコンピューター上のすべてのファイルは、FTP サーバーのファイルと比較して古くなっているように見えました)。私の解決策は、NLSTコマンドを使用して名前のみを取得し、MDTM. これはうまく機能しましたが、ファイルがディレクトリであるかどうかを判断できないという大きな問題に遭遇しました。

これを行う最も簡単な方法は、アクセス許可を使用して、最初のフラグが に設定されているかどうかを確認することだと考えていますd。FTP にはこの機能がないようです。ファイル名がディレクトリかファイルかを簡単に見分ける方法はありますか?

4

1 に答える 1

1

ファイルに対してコマンドを使用してCWD、それがディレクトリであるかどうかをテストできます。ただし、失敗は許可の欠如を意味する可能性があるため、エラーコードを確認する必要があります。例えば:

ftp> cd atom.xml
550 Can't change directory to atom.xml: Not a directory

NLSTまたは、テストするファイルに対してコマンドを再度使用することもできます。プレーンファイルの場合は、ファイル名が返されます。それ以外の場合は、ディレクトリの内容のリストが表示されます。

ftp> nlist atom.xml
200 PORT command successful
150 Connecting to port 53912
atom.xml
226 1 matches total

ftp> mkdir foo
257 "foo" : The directory was successfully created
ftp> nlist foo
200 PORT command successful
150 Connecting to port 53928
226 0 matches total
于 2012-07-14T02:04:07.910 に答える