在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;
}