dysk sieciowy a java

0

Cześć,

piszę apkę które pracuje w sieci lokalnej. W sieci jest dysk dostępny pod jakimśtam adres IP, wymagający logowania się.

Chciałbym napisać aplę, która będzie sprawdzała poprawność nazw folderów na dysku sieciowym z nazwami w bazie danych (i w przypadku błędów korygowała je).

I teraz pytanie, jak dostać się na dysk sieciowy bez mapowania go na komputerze?? chciałbym żeby ktoś kto odpali apkę wpisał login/hasło, a aplikacja zrobi sama resztę. Da radę zrobić to przy pomocy standardowych bibilotek czy trzeba coś z zewnątrz instalować? Wójek google coś podpowiada, ale głównie pomysły w stylu "najpierw mapuj dysk a potem korzystaj ze standadrowej ścieżki" albo "nie da się". Ewent da się ale ściągnij jakąś tam biblotekę. pÓÓÓÓki nie muszę, wolałbym tego uniknąć. Nie chce mi się dociągać i dokładac bibliotek, a Marven ja eclipse dla java SE jakoś dziko działa :/ nie mam konsoli (tylko podgląd, nie można komend pisać) i co chwila błędami sypie a nie chce mi się z nim walczyć :)

Pozdrawiam
Piotrek

0

Jak nie chce Ci sie wpisywac komend to moze jednak Google Drive?

0

Chcę łączyć się z dyskiem który jest w sieci lokalnej. Do dysków google nie wrzucę skanów dokumentów będących tajemnicą firmy.

Nie działał mi terminal i nie chciało mi sie go "naprawiać"- ale przez ten czas zainstalowałem od nowa eclipse i doisntalowałem terminal i już działa.

Chcę zbudować aplkę w opraciu o czyste SE. Jak sie nie da, wtedy ewetualnie zewnętrzne biblioteki.

0

To może prywatny cloud?
https://owncloud.org/

Opisz co chcesz robić z tymi danymi.
W PHP taka "aplikacja" to pół strony skryptu, na pewno chcesz do tego używać Javy?

1

Dysk sieciowy z punktu widzenia javy to nic takiego. Po prostu ścieżka na końcu której są pliki. Jedyny problem to owe hasło i użytkownik. Jeżeli ktoś już sobie wcześniej wejdzie na dysk sieciowy, bo np. ma skrót na pulpicie, to wtedy zapoda swoje uprawnienia i twoja aplikacja też zadziała.

Jeżeli ma to działać samo, to niestety jedyny sposób, nawet jak się pisze w c#, to net use .... Czyli trzeba zdobyć usera i hasło i uruchomić polecenie net use. Sprawdzić, czy się powiodło. Jak tak - można działać z dyskiem sieciowym jak ze swoim.

0

mam już względnie duża aplikacją w javie, gdzie chcę upchnąć obsługę eksprotu danych pomiędzy dwoma bazami danych oraz zarządzanie/validowanie różnych elementów systemu GIS.

Dlatego chciałbym żeby ten kod był fragmentem tej aplikacji. Poza tym chciałbym uniknąć stawiania apache do php.

Efekt jaki chcę osiągnąć:

  • W bazie danych dla QGIS pewnym kluczem generowane są nazwy folderów
  • QGIS przy pomocy prostego skryptu może otwierać foldery w eksploerze windows- pod warunkiem że nazwa pliku będzie taka sama jak nazwa dokumentu
  • chcę, żeby w ramach pracy dużego odkurzacza do GISu apka między innymi sprawdziła też poprawność nazw folderów, jak trzeba poprawiła ten nazwy bądź wygenerowała nowe foldery których brakuje.

Słowem potrzebuję zrzucić nazwę wszystkich folderów na dysku (w konkretnej lokalizacji- bez podfolderów), stworzyć nowy folder i zmienić nazwę folderu. Nic trudnego jeżeli chodzi o operacje, ale samo "dostanie" się na dysk jest dla mnie uciążliwe- brakuje mi wiedzy :)

1

Dziękuję za pomoc, dla potomnych kod:

package test;

import java.nio.file.Files;
import java.io.File;
import java.io.IOException;


public class wow {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		
		try {
			File f = new File("m:\\");
			if (f.exists())
			    System.out.println("success");
			else
			System.out.println("nop X(");
			
			
			String command = "net use m: \\\\000.000.000.000\\folder /u:user pass";
			Process p;
			p = Runtime.getRuntime().exec(command);
			p.waitFor();
			System.out.println(p.toString());
			
			if (f.exists())
			    System.out.println("success");
			else
			System.out.println("nop X(");
			
			command = "net use m: /delete";
			p = Runtime.getRuntime().exec(command);
			p.waitFor();
			System.out.println(p.toString());
			
			if (f.exists())
			    System.out.println("success");
			else
			System.out.println("nop X(");
			
		} catch (IOException | InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

}

Pozdrawiam
Piotrek

1 użytkowników online, w tym zalogowanych: 0, gości: 1