problemas con devolver un vector de string

sebastiann
11 de Mayo del 2004
Hola amigo: alguien me podia decir donde esta el herror en este metodo que devuelve un vector de String:

public String[] getArchivos()
{
File f1 = new File(dirName);

if (f1.isDirectory())
{
String s[] = f1.list();
String [] videos= new String[this.getCantidadVideos()];
int j=0;
for (int i = 0; i < s.length; i++)
{
if(s[i].endsWith(".txt")==true)
{
videos[j]=s[i];
j++;
}
}
s=null;
}
return videos;
}

cubil
11 de Mayo del 2004
El array "videos" se define dentro del if, por tanto, si la función no entra en el if, no está definido. Yo lo pondría así:

public String[] getArchivos()
{
String[] videos = new String[];

File f1 = new File(dirName);

if (f1.isDirectory())
{
String s[] = f1.list();
videos= new String[this.getCantidadVideos()];
int j=0;
for (int i = 0; i < s.length; i++)
{
if(s[i].endsWith(".txt")==true)
{
videos[j]=s[i];
j++;
}
}
s=null;
}
return videos;
}


También comprobaría en el bucle interior que j no sobrepasa el tamaño máximo del array.


noquierosergrosero
11 de Mayo del 2004
el problema será herror con h????.....bromas aparte, cual es el error que actualmente te está dando el código???....parecería que el error podría ser que tenes que definir a videos fuera del
if (f1.isDirectory()) .....


public String[] getArchivos()
{
File f1 = new File(dirName);
String [] videos = null;
if (f1.isDirectory())
{
String s[] = f1.list();
videos= new String[this.getCantidadVideos()];
int j=0;
for (int i = 0; i < s.length; i++)
{
if(s[i].endsWith(".txt")==true)
{
videos[j]=s[i];
j++;
}
}
s=null;
}
return videos;
}