@Override
	public void onMoveFile(String arg0, String arg1, boolean replace,
			DokanFileInfo arg3) throws DokanOperationException {
		try {
			if (replace)
			{
				try {
					EntityInfo inf = fileSystem.getFileMetaData(mapWinToUnixPath(arg1));
					if (DirectoryInfo.class.isInstance(inf))
						fileSystem.deleteDirectoryRecursively(arg1);
					else
						fileSystem.deleteFile(arg1);
				} catch (PathNotFoundException e) {
				}
			}
			fileSystem.rename(mapWinToUnixPath(arg0), mapWinToUnixPath(arg1));
		} catch (PathNotFoundException e) {
			throw new DokanOperationException(net.decasdev.dokan.WinError.ERROR_PATH_NOT_FOUND);
		} catch (DestinationAlreadyExistsException e) {
			throw new DokanOperationException(net.decasdev.dokan.WinError.ERROR_ALREADY_EXISTS);
		} catch (AccessDeniedException e) {
			throw new DokanOperationException(net.decasdev.dokan.WinError.ERROR_ACCESS_DENIED);
		} catch (Exception e)
		{
			e.printStackTrace();
		}
		
	}