Erkennen ob ein Pfad lokal oder im Netzwerk ist

  • Themenstarter Themenstarter trez
  • Beginndatum Beginndatum
T

trez

Gast
Wir speichern Daten in einem per Konfiguration gegebenen Pfad.
Wenn der Pfad nicht auf der lokalen Maschine ist, sind die Daten unter bestimmten Umständen verloren.
Die Idee einen Alternativpfad zu implementieren war schnell implementiert, aber nun hat der Schlaumeier "Kunde" auch da einen Netzwerkpfad angegeben - tja.

Gibt es, mindestens unter Windows, die Möglichkeit herauszufinden ob ein Pfad lokal ist? (Nein, aufgrund des Pfadnamens geht das nicht \\server\xxx wäre ja noch klar aber wer sagt mir ob D:\xxx lokal ist oder ob D: ein Netzwerkdrive ist?)

Ich möchte schlicht verhindern, dass Netzerkpfade als Alternativpfad überhaupt in die Konfiguration kommen.

Unter Linux wird es wohl unmöglich - mount macht ja wohl kaum einen Unterschied zwischen lokalen und nfs-mounts...
 
mir ist mit Java kein weg bekannt.

Ich wuerde aber ehrlich gesagt auch nicht alles was ein Kunde macht verzweifelt versuchen auszubaden. Es muss kommuniziert werden, dass bei dem Alternativpfad es sich um einen lokalen Pfad handeln muss, da ansonsten <Problembeschreibung>.

Kommt ein bug mit dieser Problematik rein daraufhinweisen.
 
hmm ... also rein mit java dürfte das schwer werden ...
auch mit der Java7 NIO.2 File-API lässt sich sowas scheinbar nicht rausfinden ...

vielleicht wäre was mit native-code möglich ... hätte da aber auch keinen ansatz wonach man da im system suchen könnte ...

bin allerdings persönlich der meinung das es unter unix sogar einfacher gehen sollte als unter windows ... da ja die mount-tabelle eigentlich auf das wahre ziel zeigt ... sowas gibts ja unter windows nicht ...

wobei ich noch an sich die anmerkung hätte : was macht man bei thin-clients ? *ich hoffe jeder weis was das ist* ... der hat als lokalen physischen speicher nur seinen RAM ... und das system selbst dürfte vermutlich nicht so einfach preis geben das es remote geladen wurden ...
 
bin allerdings persönlich der meinung das es unter unix sogar einfacher gehen sollte als unter windows ... da ja die mount-tabelle eigentlich auf das wahre ziel zeigt ... sowas gibts ja unter windows nicht ...

Ja stimmt, das habe ich nicht bedacht, aber egal, dann lass ich das halt.

Ich hänge die nächste Frage gleich mal unten an, gestehe aber, dass ich noch nicht richtig recherchiert habe 😳

Wie verschiebe ich Directories mit den enthaltenen Dateien mit Java-Mitteln? Bis jetzt habe ich erst die Idee Betriebssytembefehle aufzurufen.
 
und wo soll es das geben? Ich finde nur eine dynamische Methode renameTo mit File als Parameter.

Die in den FAQ beschriebenen Methoden mit Streams scheinen mir nicht besonders effizient - da wäre ein BS-move wohl bequemer.

der beitrag ist auch 6 Jahre alt, mit java.nio geht das verdammt hurtig.

ich bleib aber dennoch bei meiner Meinung dass hier eine Loesung fuer ein problem gesucht wird, was kein Problem sein sollte...
 
Für die Nachwelt festgehalten:

Java:
private static void move(File quelle, File ziel) throws FileNotFoundException, IOException, SecurityException {
	File[] files = quelle.listFiles();
	File newFile = null;
	System.out.println("ziel.mkdirs() returns " + ziel.mkdirs());
	if (ziel.exists()) {
		if (files != null) {
			for (File f : files) {
				newFile = new File(ziel.getAbsolutePath() + System.getProperty("file.separator") + f.getName());
				if (f.isDirectory()) {
					move(f, newFile);
					System.out.println(f);
					f.delete();
				}
				else {
					f.renameTo(ziel);
				}
			}
		}
	}
}
 
Zuletzt bearbeitet von einem Moderator:
ich würde in zeile 7 anstatt [japi]File#File(java.lang.String)[/japi] eher [japi]File#File(java.io.File, java.lang.String)[/japi] verwenden ... dann musst du dir keine gedanken über den seperator machen

außerdem ist [c]System.getProperty("file.separator")[/c] auch über [japi]File#separator[/japi] verfügbar
 
Zuletzt bearbeitet:
90% des Codes stammen aus der FAQ ;-) da habe ich mir gar keine Gedanken gemacht.
Den code habe ich noch minim verändert.
Durch die Abfrage ob das Directory existiert bricht das ganz ab und versucht es nicht unnötigerweise weiter.
 
Zuletzt bearbeitet von einem Moderator:

Neue Themen


Zurück
Oben