Avatar billede willi Nybegynder
20. februar 2003 - 11:03 Der er 6 kommentarer og
1 løsning

Rename

Denne ellers udmærkede kode kan jeg ændre dir navne med.
Men hvordan ændre jeg filerne i et dir?
(File extension)

import java.io.*;

class FilDir {

    public FilDir()
    {
        File dir = new File("d:/temp");
        File dirTemp;
     
        if(dir.isDirectory())
        {
            String[] subDir = dir.list();
         
            int nr=0;
            for(int i=0;i<subDir.length;i++)
            {
                dirTemp = new File(dir + "\\" + subDir[i]);
                if(dirTemp.isDirectory())
                {
                    dirTemp.renameTo(new File(dirTemp +  ".max" ));
                    nr++;
                }
            }
        }
    }
 
    public static void main(String args[]) {
        FilDir mainFrame = new FilDir();
           
    }
}
Avatar billede arne_v Ekspert
20. februar 2003 - 11:12 #1
renameTo kan også rename ikke-directories.

Men du kalder jo kun metoden hvis det er et directory:

Så først skal det test vel ændres.
Avatar billede benjams69 Nybegynder
20. februar 2003 - 11:12 #2
kan du ikke lave en string hvor du læser stien, og gemmer den der???
Avatar billede willi Nybegynder
20. februar 2003 - 11:20 #3
arne_v Hvad mener du med test ?
Avatar billede arne_v Ekspert
20. februar 2003 - 11:23 #4
if(dirTemp.isDirectory())  // det test sikrer at kun directories bliver renamet
                {
                    dirTemp.renameTo(new File(dirTemp +  ".max" ));
                    nr++;
                }
Avatar billede willi Nybegynder
20. februar 2003 - 12:03 #5
Det er rigtigt arne_v.
if(dirTemp.isDirectory()||dirTemp.isFile())
//if(dirTemp.isFile())

Så langt så godt. Men nu tilføjer programmet jo kun en file ext og erstatter ikke den eksisterende.
Avatar billede arne_v Ekspert
20. februar 2003 - 12:21 #6
Så skal du jo have fjernet den gamle extension.

Jeg har ikke testet det, men måske noget i retning af:

String newname = dirTemp.toString();
int ix = newname.length() - 1;
while(newname.charAt(ix)!='.') ix--;
newname = newname.substring(0, ix) + ".max");
Avatar billede willi Nybegynder
24. februar 2003 - 21:19 #7
Hej arne-v.
Undskyld den sene respons. Jeg troede at jeg havde sendt point. Tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester