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/extensions/org/eclipse/ui/dialogs/NewFolderDialog.java
* a valid parent for creating linked resources.
     * 
     * @return boolean <code>true</code> if the container specified in 
     * 	the constructor is a valid parent for creating linked resources.
     * 	<code>false</code> if no linked resources may be created with the
     * 	specified container as a parent. 
     */
    private boolean isValidContainer() {
        if (container.getType() != IResource.PROJECT && container.getType() != IResource.FOLDER) {
			return false;
		}
        try {
            IWorkspace workspace = IDEWorkbenchPlugin.getPluginWorkspace();
            IProject project = container.getProject();
            String[] natureIds = project.getDescription().getNatureIds();
            for (int i = 0; i < natureIds.length; i++) {
                IProjectNatureDescriptor descriptor = workspace
                        .getNatureDescriptor(natureIds[i]);
                if (descriptor != null
                        && descriptor.isLinkingAllowed() == false) {
					return false;
				}
            }
        } catch (CoreException exception) {
            
            return false;
        }
        return true;
    }
    /**