java - Swt 文件对话框选择了太多文件?

标签 java file dialog swt

如果我选择太多文件(大约 >2500 个文件),swt 文件对话框将给出一个空结果数组。该 list 向您展示了我如何使用此对话框。如果我选择太多声音文件,syso 将显示 0。调试告诉我,在这种情况下文件数组为空。有什么办法可以完成这项工作吗?

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())

;

最佳答案

我查看了 FileDialog 源代码,恐怕有一个上限。用于所有以 0 结尾的文件名的 32kB 字节缓冲区(如果我理解正确的话)。

因此,根据您的值进行计算,如果您的电影名字符串的中等大小约为 12 个字符,那么您就正好达到了该上限。

因此,唯一的出路是分两步或更多步骤选择文件。

关于java - Swt 文件对话框选择了太多文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3012834/

相关文章:

java - 使用 java 配置的 TCP 客户端缺少 bean 工厂

java - Android 的二进制 XML 的 InflateException

java:访问 AbstractTableModel 中的 JProgressBar

php - 文件和文件夹必须可由登录用户访问。如何保护文件免遭未经授权的访问

bash - 在 bash 脚本中,是否可以将由后台进程计算的值分配给变量?

java - 结果集到数组对象

c# - 在 C# 中显示带有文本输入的对话框

ios - 在React Native函数中创建Alert对话框?

java - 加密我的 Android 应用程序中的数据库条目

Java:如何在 JTextField 中显示由 JFileChooser 打开的文件的内容?