public static boolean saveTile(URL inUrl, String inBasePath, String inTilePath, ImageObserver inObserver)
	{
		if (inBasePath == null || inTilePath == null) {return false;}
		// save file if possible
		File basePath = new File(inBasePath);
		if (!basePath.exists() || !basePath.isDirectory() || !basePath.canWrite()) {
			// Can't write to base path
			return false;
		}
		File tileFile = new File(basePath, inTilePath);
		// Check if this file is already being loaded
		if (isBeingLoaded(tileFile)) {return true;}

		File dir = tileFile.getParentFile();
		// Start a new thread to load the image if necessary
		if ((dir.exists() || dir.mkdirs()) && dir.canWrite())
		{
			new DiskTileCacher(inUrl, tileFile, inObserver);
			return true;
		}
		return false; // couldn't write the file
	}