ShellFolderManager

Status
Nicht offen für weitere Antworten.

Merowinger

Mitglied
Hi,

ich bin am verzweifeln, weil ich im netz nix brauchbares finde.

ich hoffe hier kann mir jemand weiterhelfen...

es geht um folgendes:

ich möchte einen filebrowser schreiben der auf windows, linux und mac läuft. nach möglichkeit soll der anwender die betriebssystem spezifische ShellFolder struktur angezeigt bekommen.

nun habe ich mir überlegt eine klasse zu schreiben, die abhängig vom betriebssystem die verzeichnis und dateizugriffe handelt, bzw die shellFolder struktur zurückgibt.

leider bin ich mit windows groß geworden und deshalb ergeben sich jetzt folgende fragen für mich:

1. für windows gibt es ja im sun.awt.shell package eine klasse Win32ShellFolderManager2, mit der ich die shell verzeichnis struktur auslesen kann.

2. unter linux gibt es sowas ja nicht, da müsste ich mein verzeichnisbaum mit listRoots() beginnen, oder?

3. gibt es denn für das mac betriebssystem etwas ähnliches wie den "Win32ShellFolderManager2" für windows?

ich habe dabei an folgendes gedacht:
Code:
public class XsFile extends File {
	private static String os = System.getProperty("os.name");
	private Object shellFolderManager;
	
	private static final long serialVersionUID = 3067473219075349499L;

	public XsFile(String p_file) {
		super(p_file);
		if(os.toLowerCase().contains("windows")) {
			shellFolderManager = new sun.awt.shell.Win32ShellFolderManager2();
		} else {

		}
	}
       
        ...
}

ich bin für jede information dankbar...

lg dennis
 

Wildcard

Top Contributor
Die Klassen aus den sun Packages darfst du nicht verwenden.
Zu deiner Frage, in Linux und Unix-Derivaten gibt es immer nur einen root. In Windows mehrere, die bekommst du mit listRoots
 

Merowinger

Mitglied
warum sollte ich die sun packages nicht verwenden dürfen???

solange ich den anwender auf die GNU General Public License version 2 aufmerksam mache...

zudem dürfte man dann auch nicht den filechooser nehmen, denn der verwendet auch die sun packages...

unter windows bekomme ich mit listRoots() die festplatten, ja...ich möchte aber auch direkt die pseudo ordner "Desktop" "Eigene Dateien" usw. auslesen
 

Wildcard

Top Contributor
Die Klassen in den sun Packages sind die Internas der JRE und wechseln von Plattform zu Plattform und von Version zu Version. Wenn du solche Klassen verwendest, kannst du nicht ohne weiteres feststellen ob dein Programm nachher noch auf irgendeinem anderen als deinem Rechner funktionieren wird.
Was du suchst ist wohl die FileSystemView.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben