擅长:python、mysql、java
<p>您可以通过控制连接发送“MLST path”。
它将返回一行,包括路径的<em>类型</em>(注意这里的“type=dir”):</p>
<pre><code>250-Listing "/home/user":
modify=20131113091701;perm=el;size=4096;type=dir;unique=813gc0004; /
250 End MLST.
</code></pre>
<p>翻译成python应该是这样的:</p>
<pre><code>import ftplib
ftp = ftplib.FTP()
ftp.connect('ftp.somedomain.com', 21)
ftp.login()
resp = ftp.sendcmd('MLST pathname')
if 'type=dir;' in resp:
# it should be a directory
pass
</code></pre>
<p>当然,上面的代码不是100%可靠的,需要一个真正的解析器。
您可以在ftplib.py中查看MLSD命令的实现,它非常类似(MLSD与MLST的不同之处在于,通过<em>数据</em>连接发送的响应是相同的,但发送的行的格式是相同的):
<a href="http://hg.python.org/cpython/file/8af2dc11464f/Lib/ftplib.py#l577" rel="nofollow">http://hg.python.org/cpython/file/8af2dc11464f/Lib/ftplib.py#l577</a></p>