Avatar
javakoder1
Člen
Avatar
javakoder1:

Ahoj nejde mi vytvořit soubory do složky, kterou předtím vytvořím. Nevíte čím to je?

public void createViews(String controller, String[] views) throws IOException{
        this.path = "View/"+controller;
        file = new File(path);
        file.mkdir();
        for(String view : views){
            String cesta = path+"/"+view+".php";
            file = new File(path);
            fileWriter = new FileWriter(file);
            buffWriter = new BufferedWriter(fileWriter);
            file.createNewFile();
            fileWriter.write("<h1>"+view+"<h1>");
            turnOff();
        }
    }

Tohle je metoda, která by měla soubory vytvořit.
Píše mi to "Přístup byl odepřen."

 
Odpovědět 6.11.2014 21:48
Avatar
Hit
Člen
Avatar
Hit:

Zkusil bych to upravit:

String cesta = path+"\\"+view+".php";
Nahoru Odpovědět 6.11.2014 21:56
Life's not about how hard you can hit, it's about how hard you can GET hit and keep moving forward.
Avatar
Silvinios
Redaktor
Avatar
Odpovídá na javakoder1
Silvinios:

Na kterém řádku dochází k výjimce?
Proč voláš metodu createNewFile? K vytvoření souboru by mělo dojít v konstruktoru třídy FileWriter.
Proč vytváříš objekt BufferedWriter, ale zapisuješ pomocí fileWriter?

 
Nahoru Odpovědět 6.11.2014 22:02
Avatar
javakoder1
Člen
Avatar
Odpovídá na Hit
javakoder1:
public void createViews(String controller, String[] views) throws IOException{
         this.path = "View\\"+controller;
         file = new File(path);
         file.mkdir();
         for(String view : views){
             String cesta = path+"\\"+view+".php";
             file = new File(path);
             fileWriter = new FileWriter(file);
             buffWriter = new BufferedWriter(fileWriter);
             file.createNewFile();
             fileWriter.write("<h1>"+view+"<h1>");
             turnOff();
         }
     }

Pořád nefunguje.

 
Nahoru Odpovědět 6.11.2014 22:02
Avatar
javakoder1
Člen
Avatar
Odpovídá na Silvinios
javakoder1:

ani tohle nefunguje:

public void createViews(String controller, String[] views) throws IOException{
         this.path = "View\\"+controller;
         file = new File(path);
         file.mkdir();
         for(String view : views){
             String cesta = path+"\\"+view+".php";
             file = new File(path);
             fileWriter = new FileWriter(file);
             //buffWriter = new BufferedWriter(fileWriter);
             //file.createNewFile();
             fileWriter.write("<h1>"+view+"<h1>");
             turnOff();
         }
     }
 
Nahoru Odpovědět 6.11.2014 22:04
Avatar
Silvinios
Redaktor
Avatar
Odpovídá na Hit
Silvinios:

Čistší je použít File.separator:

String cesta = path + File.separator + view + ".php";
 
Nahoru Odpovědět 6.11.2014 22:05
Avatar
Hit
Člen
Avatar
Odpovídá na javakoder1
Hit:

Divný, zkoušel sis vypsat tu cestu před vytvořením toho souboru? Jen tak pro kontrolu

Nahoru Odpovědět 6.11.2014 22:05
Life's not about how hard you can hit, it's about how hard you can GET hit and keep moving forward.
Avatar
Nahoru Odpovědět 6.11.2014 22:07
Pokud neděláš chyby, nepracuješ na dostatečně těžkých problémech.
Avatar
javakoder1
Člen
Avatar
 
Nahoru Odpovědět 6.11.2014 22:08
Avatar
javakoder1
Člen
Avatar
javakoder1:
public void createViews(String controller, String[] views) throws IOException{
         this.path = "View"+ File.separator +controller;
         file = new File(path);
         file.mkdir();
         for(String view : views){
             String cesta = path + File.separator + view + ".php";
             file = new File(path);
             file.createNewFile();

             turnOff();
         }
     }

Tohle mi sice nevyhodí chybu, ale do složky se nové soubory nevytvoří :(
Tak já už fakt nevím.

 
Nahoru Odpovědět 6.11.2014 22:10
Avatar
Hit
Člen
Avatar
Odpovídá na javakoder1
Hit:

Myslím, že to je System.getPro­perty("file.se­parator");

Nahoru Odpovědět 6.11.2014 22:14
Life's not about how hard you can hit, it's about how hard you can GET hit and keep moving forward.
Avatar
javakoder1
Člen
Avatar
Odpovídá na Hit
javakoder1:
this.path = "View"+ File.separator +controller;
        for(String view : views){
            String cesta = path + File.separator + view + ".php";
            new File(cesta).mkdirs();
            file = new File(cesta);
            file.createNewFile();

            System.out.println(cesta);

        }

Tohle mi jde. Akorát vytváří složky. Chci soubory prvni.php, druhy.php a místo toho se mi vytvoří složky. Nevíš čím to je?

 
Nahoru Odpovědět 6.11.2014 22:23
Avatar
Hit
Člen
Avatar
Odpovídá na javakoder1
Hit:

Protože máš v každým cyklu

new File(cesta).mkdirs();
Nahoru Odpovědět 6.11.2014 22:25
Life's not about how hard you can hit, it's about how hard you can GET hit and keep moving forward.
Avatar
javakoder1
Člen
Avatar
Odpovídá na Hit
javakoder1:
public void createViews(String controller, String[] views) throws IOException{
         this.path = "View"+ File.separator +controller;
         for(String view : views){
             String cesta = path + File.separator + view + ".php";
             File f1 = new File(path);
             File f = new File(cesta);
            f1.mkdirs();
            f.createNewFile();
             System.out.println(cesta);

             write(path, view);
         }
     }


    private void write(String path, String name) throws IOException{
        try (BufferedWriter bw = new BufferedWriter(new FileWriter(new File(path)))) {
            bw.write("<h1>"+name+"<h1>");
        }
    }

Teď už se všechno vytvoří jak má, ale do nového souboru .php nemůžu nic zapsat. "Přístup byl odepřen". Tohle je noční můra.

Editováno 6.11.2014 22:39
 
Nahoru Odpovědět 6.11.2014 22:38
Avatar
javakoder1
Člen
Avatar
Odpovídá na Hit
javakoder1:

Jo konečná verze. Už to funguje jak má :D

public void createViews(String controller, String[] views) throws IOException{
        this.path = "View"+ File.separator +controller;
        for(String view : views){
            String cesta = path + File.separator + view + ".php";
            File f1 = new File(path);
            File f = new File(cesta);
           f1.mkdirs();
           f.createNewFile();
            System.out.println(cesta);

            write(f, view);
        }
    }

   private void write(File file, String name) throws IOException{
       try (BufferedWriter bw = new BufferedWriter(new FileWriter(file))) {
           bw.write("<h1>"+name+"<h1>");
       }
   }
Akceptované řešení
+20 Zkušeností
Řešení problému
 
Nahoru Odpovědět 6.11.2014 22:41
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 15 zpráv z 15.