예제 #1
0
파일: func.py 프로젝트: kainhuck/FileKingOS
def cp(filename, pwd, folder, user):
    '''
    复制文件
    '''
    if pwd == '/':
        print("不能将文件复制到根目录")
        return
    folderList = pwd.split("/")
    oldFolder = folder
    newname = folderList.pop(-1)  # 最后一个默认是新文件名
    if not len(newname):
        print("目标文件名不能为空")
        return
    if not len(folderList):  # 当前文件夹下
        # 判断重名
        for each in folder.fileList:
            if each.name == newname:
                print("文件重名")
                return

        # 找到要复制的文件
        for each in oldFolder.fileList:
            if each.name == filename:
                # 新建文件
                file = File(newname)
                file.content = each.content
                folder.fileList.append(file)
                break
        else:
            print("文件不存在")

        return

    # 其他情况,
    # 先切换到目标目录
    pwd = pwd[:pwd.rfind(newname) - 1]
    if not len(pwd):  # 此时说明在根目录下
        print("不能将文件复制到根目录下")
        return
    folder = cd(pwd, folder, user)
    # 再复制文件
    # 判断重名
    for each in folder.fileList:
        if each.name == newname:
            print("文件重名")
            return

    # 找到要复制的文件
    for each in oldFolder.fileList:
        if each.name == filename:
            # 新建文件
            file = File(newname)
            file.content = each.content
            folder.fileList.append(file)
            break
    else:
        print("文件不存在")

    return