简体   繁体   English

pysmb递归删除文件夹子文件夹和文件

[英]pysmb delete recursively folder sub-folder and files

I have a shared folder with a folder at the root with sub-folders and files. 我有一个共享文件夹,在根目录下有一个带有子文件夹和文件的文件夹。

I can not find how to recursively delete folders at the root with sub-folders and files. 我找不到如何用子文件夹和文件递归删除根目录下的文件夹的方法。

May I have some help please. 请给我一些帮助。

Thank you 谢谢

This the function by Michael for python 2.7: 这是Michael对于python 2.7的功能:

from smb.SMBConnection import SMBConnection

dry_run = True  # Set to True to test if all files/folders can be "walked". Set to False to perform the deletion.
userID = 'myuser'
password = 'mypassword'
client_machine_name = 'testclient'   # Usually safe to use 'testclient'
server_name = 'MYSERVER'   # Must match the NetBIOS name of the remote server
server_ip = '192.168.1.10' # Must point to the correct IP address
domain_name = ''           # Safe to leave blank, or fill in the domain used for your remote server
shared_folder = 'smbtest'  # Set to the shared folder name

conn = SMBConnection(userID, password, client_machine_name, server_name, domain=domain_name, use_ntlm_v2=True, is_direct_tcp=True)
conn.connect(server_ip, 445)

def walk_path(path):
    print 'Walking path', path
    for p in conn.listPath(shared_folder, path):
        if p.filename!='.' and p.filename!='..':
            parentPath = path
            if not parentPath.endswith('/'):
                parentPath += '/'

            if p.isDirectory:
                walk_path(parentPath+p.filename)
                print 'Deleting folder (%s) in %s' % ( p.filename, path )
                if not dry_run:
                    conn.deleteDirectory('smbtest', parentPath+p.filename)
            else:
                print 'Deleting file (%s) in %s' % ( p.filename, path )
                if not dry_run:
                    conn.deleteFiles('smbtest', parentPath+p.filename)

# Start and delete everything at shared folder root
walk_path('/')

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM