コード例 #1
0
ファイル: Directories.py プロジェクト: BarviX6/obh-enigma2
def moveFiles(fileList):
    errorFlag = False
    movedList = []
    try:
        for item in fileList:
            os.rename(item[0], item[1])
            movedList.append(item)
    except (IOError, OSError) as err:
        if err.errno == errno.EXDEV:  # Invalid cross-device link
            print "[Directories] Warning: Cannot rename across devices, trying slower move."
            from Tools.CopyFiles import moveFiles as extMoveFiles  # OpenViX, OpenATV, Beyonwiz
            # from Screens.CopyFiles import moveFiles as extMoveFiles  # OpenPLi
            extMoveFiles(fileList, item[0])
            print "[Directories] Moving files in background."
        else:
            print "[Directories] Error %d: Moving file '%s' to '%s'! (%s)" % (
                err.errno, item[0], item[1], err.strerror)
            errorFlag = True
    if errorFlag:
        print "[Directories] Reversing renamed files due to error."
        for item in movedList:
            try:
                os.rename(item[1], item[0])
            except (IOError, OSError) as err:
                print "[Directories] Error %d: Renaming '%s' to '%s'! (%s)" % (
                    err.errno, item[1], item[0], err.strerror)
                print "[Directories] Failed to undo move:", item
コード例 #2
0
def moveFiles(fileList):
	errorFlag = False
	movedList = []
	try:
		for item in fileList:
			os.rename(item[0], item[1])
			movedList.append(item)
	except OSError, e:
		if e.errno == 18:  # errno.EXDEV - Invalid cross-device link
			print "[Directories] Warning: Cannot rename across devices, trying slower move."
			from Tools.CopyFiles import moveFiles as extMoveFiles  # OpenViX, OpenATV, Beyonwiz
			# from Screens.CopyFiles import moveFiles as extMoveFiles  # OpenPLi
			extMoveFiles(fileList, item[0])
			print "[Directories] Moving files in background."
		else:
			print "[Directories] Error %d: Moving file '%s' to '%s'! (%s)" % (e.errno, item[0], item[1], os.strerror(e.errno))
			errorFlag = True