2010-06-10 7 views
1

la boîte de dialogue du fichier swt me donnera un tableau de résultats vide si je sélectionne trop de fichiers (environ> 2500files). La liste vous montre comment j'utilise cette boîte de dialogue. Si je sélectionne trop de fichiers son, le syso affichera 0. Le débogage me dit que le tableau de fichiers est vide dans ce cas. Y a-t-il un moyen d'obtenir ce travail?La boîte de dialogue Fichier SWT a-t-elle sélectionné trop de fichiers?

FileDialog fileDialog = new FileDialog(mainView.getShell(), SWT.MULTI); 
    fileDialog.setText("Choose sound files"); 
    fileDialog.setFilterExtensions(new String[] { new String("*.wav") }); 
    Vector<String> result = new Vector<String>(); 
    fileDialog.open(); 

    String[] files = fileDialog.getFileNames(); 
    for (int i = 0, n = files.length; i < n; i++) { 
    if(!files[i].contains(".wav")) { 
    System.out.println(files[i]); 
    } 

    StringBuffer stringBuffer = new StringBuffer(); 
    stringBuffer.append(fileDialog.getFilterPath()); 
    if (stringBuffer.charAt(stringBuffer.length() - 1) != File.separatorChar) { 
    stringBuffer.append(File.separatorChar); 
    } 
    stringBuffer.append(files[i]); 
    stringBuffer.append(""); 

    String finalName = stringBuffer.toString(); 
    if(!finalName.contains(".wav")) { 
    System.out.println(finalName); 
    } 
    result.add(finalName); 
    } 
    System.out.println(result.size()) 

;

Répondre

2

J'ai regardé le code source de FileDialog et j'ai bien peur qu'il y ait une limite supérieure. Un tampon de 32 Ko d'octets pour tous les noms de fichiers terminés par 0 (si je l'ai bien compris). Donc, en calculant avec vos valeurs, si la taille moyenne de vos chaînes de nom de fichier est d'environ 12 caractères, alors vous avez frappé exactement cette limite supérieure. La seule solution consiste donc à sélectionner les fichiers en deux étapes ou plus.

+0

Oh non! ;) Je vous remercie d'avoir pris le temps. – InsertNickHere

Questions connexes