Verzeichnisstruktur ohne TreeView

Status
Nicht offen für weitere Antworten.

skummy

Aktives Mitglied
Nachdem mein letzter Thread aus Fehlinterpretationen untergangen ist, möchte ich hier nochmal einen neuen aufmachen, in dem das Problem deutlicher und vereinfachter darfstellt wird.
Die Moderation möchte es mir bitte verzeihen 🙂.

Ich habe ein Array mit Pfad-Elementen:
Code:
array("hallo/", "hallo/welt/" "hallo/welt/hmm/", "hallo/du/", "hallo/du/heile", "hallo/du/heile/welt", "hallo2/", "hallo2/huhu/", "hallo2/hihi/", "hallo2/hihi/hoho")

Aus diesem Array soll folgende HTML-Struktur entstehen:

Code:
<li><span>Item 1</span></li>

<ul>
	<li><span>Item 1.0</span>
		<ul>
	      	<li><span>Item 1.0.0</span></li>
			<li><span>Item 1.0.1</span>
				<ul>
					<li><span>Item 1.0.1.0</span></li>
					<li><span>Item 1.0.1.1</span></li>
				</ul>					
			</li>
			<li><span>Item 1.0.2</span>
				<ul>
					<li><span>Item 1.0.2.0</span></li>
					<li><span>Item 1.0.2.1</span></li>
					<li><span>Item 1.0.2.2</span></li>
					[usw.]
				</ul>
			</li>
		</ul>
	</li>
</ul>


<li><span>Item 2</span></li>

Für "Item 1" usw. sollen natürlich die entsprechenden Pfade stehen.

Ich bin jedenfalls am Verzweifeln. Ich habe schon so viel ausprobiert, dass ich selbst nicht mehr so richtig das Problem erkenne 🙁!

Kann mir jemand einen Tipp oder vielleicht sogar einen Lösungsansatz geben?



Vielen Dank,
Sandro
 
Hmm also als Ansatz würd ich mal sowas probieren...

Code:
/**
 * @author berr
 * 
 */
public class Test {

	private class Entry {
		
		private String name;

		private List<Entry> subFolders;

		/**
		 * 
		 */
		public Entry(String name) {
			this.name = name;
			subFolders = new ArrayList<Entry>();
		}

		/**
		 * @param folder
		 */
		public Entry addFolder(String folder) {
			for (Entry subFolder : subFolders) {
				if (subFolder.name.equals(folder)) {
					return subFolder;
				}
			}
			Entry e = new Entry(folder);
			subFolders.add(e);
			return e;
		}

		/**
		 * 
		 */
		public void out(String offset) {
			System.out.println(offset + name);
			for (Entry subFolder : subFolders) {
				subFolder.out(offset + "  ");
			}
		}

	}

	/**
	 * 
	 */
	public Test() {
		String[] paths = { "hallo/", "hallo/welt/", "hallo/welt/hmm/",
				"hallo/du/", "hallo/du/heile", "hallo/du/heile/welt",
				"hallo2/", "hallo2/huhu/", "hallo2/hihi/", "hallo2/hihi/hoho" };

		Entry root = new Entry("");
		for (String path : paths) {
			String[] folders = path.split("/");
			Entry current = root;
			for (String folder : folders) {
				current = current.addFolder(folder);
			}
		}

		root.out("");
	}

	public static void main(String[] args) {
		new Test();
	}
}

Das scheißt das hier raus:

Code:
  hallo
    welt
      hmm
    du
      heile
        welt
  hallo2
    huhu
    hihi
      hoho

Das geht sicherlich noch schöner und ein paar kommentare und sonstiges bling, bling wäre auch nicht schlecht, aber wenn der Output das ist, was du suchst, da wirst du da sicherlich was schönes draus machen können.
 
Hallo WieselAc,

das sieht echt sehr sehr gut aus 🙂. DANKE dafür!

Nur leider bekomme ich nicht an der richtigen Stelle die <li> und <ul> platziert. Könntest du da vielleicht netterweise mal schauen, wo du sie platzieren würdest? Denn ich finde mich nicht so wirklich in deinem Quelltext zurecht.

Vielen Dank,
Sandro
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben