Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中将文件[]转换为字符串[]_Java_Arrays_String_File_Selenium - Fatal编程技术网

在Java中将文件[]转换为字符串[]

在Java中将文件[]转换为字符串[],java,arrays,string,file,selenium,Java,Arrays,String,File,Selenium,我有这个密码 File folder = new File("F:\\gals"); File[] listOfFiles = folder.listFiles(); 这段代码返回文件夹F:\gals中所有文件的位置数组,我试图在selenium代码中使用此位置 driver.findElement(By.id(id1)).sendKeys(listOfFiles[1]); 我看到了错误 The method sendKeys(CharSequence...) in the type W

我有这个密码

File folder = new File("F:\\gals");
File[] listOfFiles = folder.listFiles();  
这段代码返回文件夹F:\gals中所有文件的位置数组,我试图在selenium代码中使用此位置

driver.findElement(By.id(id1)).sendKeys(listOfFiles[1]);
我看到了错误

The method sendKeys(CharSequence...) in the type WebElement is not applicable for the arguments (File)

所以我想我必须把listOfFiles[]转换成字符串数组,请告诉我一个简单的方法。谢谢

您不需要转换整个阵列。只需调用
文件
getAbsolutePath()
方法:

driver.findElement(By.id(id1)).sendKeys(listOfFiles[1].getAbsolutePath());
但是如果您确实想转换整个数组,下面是Java8的转换方法(通过@RemigiusStalder简化):


我认为,您不需要将文件[]转换为字符串[]

只需按以下方式使用文件数组:

driver.findElement(By.id(id1)).sendKeys(listOfFiles[1].getName());
或者,如果要发送完整的文件路径:

driver.findElement(By.id(id1)).sendKeys(listOfFiles[1].getPath());

你为什么不能试试这个

driver.findElement(By.id(id1)).sendKeys(listOfFiles[1].getName());

如果您只需要名称:

String [] fileNames new String[listOfFiles.length];
  for (int i = 0; i < listOfFiles.length; i++) {
    fileNames[i] = listOfFiles[i].getName();
}
String[]文件名新字符串[listOfFiles.length];
for(int i=0;i
如果需要完整路径:

String [] fileNames new String[listOfFiles.length];
  for (int i = 0; i < listOfFiles.length; i++) {
    fileNames[i] = listOfFiles[i].getPath();
}
String[]文件名新字符串[listOfFiles.length];
for(int i=0;i
另一种方法:这只是一种将文件数组转换为字符串数组的静态辅助方法:

 private static String[] convertFromFilesArray(File[] files){
        String[] result = new String[files.length];
        for (int i = 0; i<files.length; i++){
            result[i] = files[i].getAbsolutePath();
        }

        return result;
    }
私有静态字符串[]ConvertFromFileArray(文件[]文件){
字符串[]结果=新字符串[files.length];

对于(int i=0;i只需调用
File.list()

您想向Selenium发送什么?文件路径还是文件内容?ListoFiles[]-->String[]在我们知道你想要实现什么之前还不清楚。我想上传文件,要上传文件我必须发送filepathJava8代码可以简化为:
String listOfPaths[]=Arrays.stream(listOfFiles.map(file::getAbsolutePath.toArray(String[]::new);
@thiagoprorciúncula所以
listFiles()
。唯一的区别在于返回的数据类型。@Thiagoprorciúncula我只能建议您继续阅读:[强调添加]。
 private static String[] convertFromFilesArray(File[] files){
        String[] result = new String[files.length];
        for (int i = 0; i<files.length; i++){
            result[i] = files[i].getAbsolutePath();
        }

        return result;
    }