datei aus (RCP) workspace laden

pyroben

Grünschnabel
Hallo,

ich habe nun meine rcp-anwendung soweit fertig, dass ich meine erstellten xml files in meinen eigenen workspace speichern kann.

Code:
public void save() {
		DSWriter dsWriter = new DSWriter();
		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
		IProject project = root.getProject("myProject");	
		IFile file = project.getFolder("Configurations").getFile(ds.getName() + ".xml");
		ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
		
		/* write the Configuration to a ByteArrayOutputStream */
		try {
			dsWriter.write(ds,outputStream);
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		
		InputStream source = 
				new ByteArrayInputStream(outputStream.toByteArray());
		
		/* create file in workspace,  respectively change it's content if already exists */		
		if (!file.exists()) {
		try {
			file.create(source, IResource.NONE, null);
		} catch (CoreException e) {
			System.out.println("creating file failed");
			e.printStackTrace();
		} // end try-catch
		}else {
			try {
				file.setContents(source, IResource.NONE, null);
			} catch (CoreException e) {
				System.out.println("changing file content failed");
				e.printStackTrace();
			}
		}//end if

aber wie kann ich die datei beim start wieder laden?
es gibt zwar die getFile(String filename) aber dazu müsst ich wissen wie die datei heisst. Da der Benutzer aber selbst den Dateinamen wählen kann, muss es doch eine Möglichkeit geben, alle IFiles im IFolder bzw IProject abzufragen oder zu laden.

danke für eure Antworten schon mal.
pyro
 
habs raus. die methode members() gibt mir alle resources aus einem Folder oder Project.

ResourcesPlugin.getWorkspace().getRoot();
IProject project = root.getProject("myProject");
IFile[] files = project.getFolder("Configurations").members();

dann hab ich ein array aus IFiles und kann sie mit einer For Schleife auslesen.
 
Zurück