Just nu i M3-nätverket
Gå till innehåll

Problem med returvärde i File och med mkdirs()


HalSoul

Rekommendera Poster

Koden:

private static void createFolder() throws IOException{
	// Hämtar sökväg till lokationen för den nya mappen
	String p = getFolderPath();
	boolean success = false;
	// Skapar flera mappar i en sökväg
	success = (new File(p)).mkdirs();
	// Om det fick bra
	if (success) {
		System.out.println("Directories: " + p + " created");
	} 
	// Om det inte gick så bra
	else {
		System.out.println("Directories where not created. Invalid path or folder name(s)!");
	}
	// Återgår till menyn
	MainMenu();
}

 

Success är alltid false, även om mapparna skapas. Alltså, Mapparna skapas ändå, så länge det är en giltig sökväg, men success blir ändå false... k?

 

Har även prövat med en try/catch men returnerar inga fel ändå...

Länk till kommentar
Dela på andra webbplatser

Vad jag kan hitta om mkdirs så returnerar den falskt både om någon av mapptilläggen misslyckades ELLER om någon av mapparna redan existerar. Dålig konstruktion helt enkelt av den metoden, den borde returnera true om den kompletta sökvägen existerar efter körning, oavsett om den fanns innan eller ej.

 

Du får nog använda dig av Exists för att kontrollera att sökvägen existerar efteråt.

På Windows verkar det dock som det kan ta någon millisekund innan Exists ger ett pålitligt svar, då uppdateringen av filstrukturen inte nödvändigtvis är klar när metoden returnerar. Illa Java igen...

Länk till kommentar
Dela på andra webbplatser

Har labbat med de mest enkla och mest logiska funktionerna nu, och Java verkar inte fatta ett dugg.. Byter nu språk för detta projekt... urg...

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...