Bug 137879 Unable to specify resources in zip filesystem
How to repeat the problem: 1. Check out and compile the org.eclipse.ui.filesystem.examples plug-in. 2. Start runtime workspace. The following operations are in the runtime workspace. 3. Create a new project, e.g. TestZipFilesystem 4. Create a new file, in the wizard page, check "Link file to file system" and choose the file system as "Zip file". 5. Click on Browse... button and browse to a zip file in the local file system , choose OK. 6. Now, the file name field becomes "GettingStarted.zip", and the link to file system filed becomes "zip:/d:/Downloads/GettingStarted.zip". 7. On windows platform, an error message appeared ": is an invalid character in resource name zip:.". And the Finish button is grayed out. On linux platform, a warning message appear and say that the resource is not available in the workspace. The finish button works, though. =========== 8. In both cases, there is no way to choose a file in the zip as the linked resource. In other words, the UI does not treat the zip as a file system. The memory file system has similar problem, i.e. there is no real UI support for these file systems.
bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/CreateLinkedResourceGroup.java
public String getLinkTarget() {
		if (createLink) {
			return linkTarget;
		}
		return null;
	}
	/**
	 * Opens a file or directory browser depending on the link type.
	 */
	private void handleLinkTargetBrowseButtonPressed() {
		IFileStore store = null;
		String selection = null;
		FileSystemConfiguration config = getSelectedConfiguration();
		boolean isDefault = config == null
				|| (FileSystemSupportRegistry.getInstance()
						.getDefaultConfiguration()).equals(config);
		if (linkTarget.length() > 0) {
			store = IDEResourceInfoUtils.getFileStore(linkTarget);
			if (!store.fetchInfo().exists()) {
				store = null;
			}
		}
		if (type == IResource.FILE) {
			if (isDefault) {
				FileDialog dialog = new FileDialog(linkTargetField.getShell());
				if (store != null) {
					if (store.fetchInfo().isDirectory()) {
						dialog.setFilterPath(linkTarget);
					} else {
						dialog.setFileName(linkTarget);