-1

在下面的代码中,我列出了文件夹中的文件并将文件路径传递给方法loadCSV。但是我在这里遇到类型不匹配错误。请帮助

String Folderfilename= list[i];

可以说“无法将文件转换为字符串”

File foldername = new File(filename);

System.out.println("actual"+foldername);

File[] list = foldername.listFiles();

for(int i=0; i<list.length; i++){

    System.out.println("inside for" +list.length);
    String substring = list[i].getName().substring(0, list[i].getName().indexOf("."));

    System.out.println("substring" +substring);

    if(list[i].isFile() && list[i].getName().contains(".csv")) {
        ////////getting mismatch error in the below line
        String Folderfilename= list[i];
        new SCLoad().loadCSV(con,Folderfilename, ImportTable);
        System.out.println("CLASS NAME "+list[i]);
    }
}
4

4 回答 4

1

在这里排队

  String Folderfilename= list[i];

但你的列表是一个File对象类型的数组。

所以你不能assign喜欢那样。类型不匹配存在。

可能你需要getName()

 String Folderfilename= list[i].getName();

请在使用上述行之前添加适当的检查。

于 2013-08-24T09:38:44.037 回答
0

做这个

File file = list[i];
String Folderfilename= file.getName()
于 2013-08-24T09:41:48.963 回答
0

您的代码中有两个更改:

列表[i].getName();

if( list[i].isDirectory() ) 继续;//避免异常并继续寻找csv文件。

String folderFileName = "";
File foldername = new File(filename);
File[] list = foldername.listFiles();
for(int i=0; i<list.length; i++){
    if( list[i].isDirectory() )
      continue;

    folderFileName = list[i].getName();
    if( folderFileName.toLowerCase().endsWith(".csv") ) {
        System.out.println("csv file: " + folderFileName);
        new SCLoad().loadCSV(con,folderFileName, ImportTable);
    }
}
于 2013-08-24T09:53:34.693 回答
0

我想您正在寻找以 csv 结尾的文件。您可能应该使用FileNameFilter. 这是一个片段

File dir = new File("/tmp/");
File[] csvFiles = dir.listFiles(new FilenameFilter() {

    @Override
    public boolean accept(File dir, String name) {
        return name.toLowerCase().endsWith("csv"); //get all csv files
    }
});
//now load these csvFiles using whatever loaders
for (File csvFile :  csvFiles) {
    // I am guessing SCLoad requires a complete path.    
    new SCLoad().loadCSV(con,csvFile.getCanonicalPath(), ImportTable);
}
于 2013-08-24T13:58:10.783 回答