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
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