我想通过SSH递归下载目录,目录内容未知,并且一直在尝试Paramiko。我已经看到了几个如何上传目录的示例,但没有一个涉及递归下载。
我可以列出目录中的所有项目,但无法找到一种方法来知道该项目是文件(下载)还是目录(递归调用)。
transport = paramiko.Transport((MY_IP, 22))
transport.connect(username=MY_NAME, password=MY_PASS)
sftp = paramiko.SFTPClient.from_transport(transport)
file_list = sftp.listdir(path='/home/MY_HOME_DIR')
for item in file_list:
# Here is an item name... but is it a file or directory?
print(item)
sftp.close()
transport.close()
那么我怎么知道一个项目是文件还是目录?
from stat import S_ISDIR
def isdir(path):
try:
return S_ISDIR(sftp.stat(path).st_mode)
except IOError:
#Path does not exist, so by definition not a directory
return False
…假设sftp
是开放的Paramiko SFTP连接。
问题内容: 有没有办法用Java递归删除整个目录? 在正常情况下,可以删除一个空目录。但是,要删除带有目录的整个目录,就不再那么简单了。 如何用Java删除包含目录的整个目录? 问题答案: 你应该查看。它有一个类,可以执行你想要的操作。
问题内容: 您如何使用Paramiko传输完整目录?我正在尝试使用: 这给了我这个错误- 问题答案: 您将需要像使用python在本地一样进行此操作(如果您未使用Shutils)。 结合,和和。您可能还需要检查每个文件和目录,具体取决于您是否要解析符号链接。
问题内容: 我发布了有关使用Paramiko收到的持续错误消息的上述问题。我认为这与我的下一个问题无关,但可能与之相关。 我可以使用Paramiko通过SSH成功连接到服务器。我可以执行ls或pwd之类的命令。我似乎无法做的是更改目录。例如,我可以发送命令“ cd ..”,但是当我跟进“ pwd”时,它表明我尚未更改目录。它仅列出我登录时所在的初始目录。 我误会了这里发生了什么吗?我应该不能更
我试图阶段一个项目从工作目录到服务器(同一台机器)。使用以下代码: 我希望看到所有的文件都被复制。但是,它使目录结构扁平化-所有目录都被复制,但每个文件都放在根目录中 Gulp看起来是一个很好的构建工具,但是复制项目应该是一个简单的过程吗?
问题内容: 用Java查找具有特定名称的目录的最佳方法是什么?我要查找的目录可以位于当前目录或其子目录之一中。 问题答案: 您的解决方案将包括 API参考
问题内容: 我有此功能返回: } 但是我想做的是搜索文件/文件夹并返回它的路径,我该怎么做?你有这样的功能,或者可以给我一些技巧吗? 问题答案: 尝试结合使用RecursiveIteratorIterator和RecursiveDirectoryIterator