if(deleteDotProject){  IFile projectFile = project.getFile(".project"); if (projectFile != null) {  projectFile.delete(true, false, null); } }
	public static void checkout(		final ISVNRemoteFolder[] resources,		final IProject[] projects,		final IProgressMonitor monitor)		throws TeamException {		final TeamException[] eHolder = new TeamException[1];		try {			IWorkspaceRunnable workspaceRunnable = new IWorkspaceRunnable() {				public void run(IProgressMonitor pm) throws CoreException {					pm.beginTask(null, 1000 * resources.length);					// Get the location of the workspace root					ISVNLocalFolder root = SVNWorkspaceRoot.getSVNFolderFor(ResourcesPlugin.getWorkspace().getRoot());                                        try {                                                // Prepare the target projects to receive resources                        scrubProjects(projects, monitor);                        pm.worked(100);                                                for (int i = 0; i < resources.length; i++) {                            IProject project = null;                            RemoteFolder resource = (RemoteFolder) resources[i];							project = projects[i];							boolean deleteDotProject = false;						    // Perform the checkout                            ISVNClientAdapter svnClient = resource.getRepository().getSVNClient();							// check if the remote project has a .project file							ISVNDirEntry[] rootFiles = svnClient.getList(resource.getUrl(), SVNRevision.HEAD, false);							for (int j = 0; j < rootFiles.length; j++) {								if ((rootFiles[j].getNodeKind() == SVNNodeKind.FILE) && (".project".equals(rootFiles[j].getPath()))) {										deleteDotProject = true;								}							}							                            File destPath;							if (project.getLocation() == null) {                                // project.getLocation is null if the project does not exist in the workspace								destPath = new File(root.getIResource().getLocation().toFile(),project.getName());                                // we create the directory corresponding to the project and we open it                                 project.create(null);                                project.open(null);								if(deleteDotProject){																		IFile projectFile = project.getFile(".project");									if (projectFile != null) {										// delete the project file, force, no history, without progress monitor										projectFile.delete(true, false, null);									}								}     							} else {								destPath = project.getLocation().toFile();							}							                            OperationManager operationHandler = OperationManager.getInstance();							try {								operationHandler.beginOperation(svnClient);								svnClient.checkout(resource.getUrl(), destPath, SVNRevision.HEAD, true);                                pm.worked(800); 							} catch (SVNClientException e) {								throw new SVNException("cannot checkout");							} finally {								operationHandler.endOperation(); 							}							// Bring the project into the workspace							refreshProjects(								new IProject[] { project },								Policy.subMonitorFor(pm, 100));                        } //for					} catch (TeamException e) {						// Pass it outside the workspace runnable						eHolder[0] = e;					} catch (SVNClientException ce) {						eHolder[0] = new TeamException("Error Getting Dir list", ce);					} finally {						pm.done();					}				} // run			};			ResourcesPlugin.getWorkspace().run(workspaceRunnable, monitor);		} catch (CoreException e) {			throw SVNException.wrapException(e);		} finally {			monitor.done();		}		// Re-throw the TeamException, if one occurred		if (eHolder[0] != null) {			throw eHolder[0];		}	}