@Override
	public boolean delete(String filePath) {
		if (filePath.contains("\\\\")) //This code fixes an oversight that arises when top-level nodes are assigned for deletion
			filePath = filePath.replace("\\\\", "\\");
		Node targetNode = retrieveNode(filePath); //get the node object associated with the specified filePath
		Node parentOfTargetNode = retrieveNode(filePath.substring(0, filePath.lastIndexOf("\\"))); //get the parent of the target node
		
		Node[] childNodes = parentOfTargetNode.getChildren();
		ArrayList<Node> nodeList = new ArrayList<Node>(); //Build a list of all nodes that are siblings of the parent node
		for (Node n: childNodes)
			nodeList.add(n);
		
		if(nodeList.remove(targetNode)) //remove the target node from the list of siblings
		{
			Node[] newNodeList = new Node[nodeList.size()];
			for (int i = 0; i < nodeList.size(); i++)
				newNodeList[i] = nodeList.get(i);
				
			parentOfTargetNode.setChildren(newNodeList); //parent now has the same children as before, minus the target node
			File f = new File(targetNode.getPath()); //Create a file object pointing to the specified node
			
			if (f.exists())
			{
				delete(f); //ask the user's operating system to delete the file
				return true;
			}
		}
		return false;
	}