안녕하세요, 자산에서 Excel을 읽으려고하고 JSON으로 변환하려고했지만 오류가 발생했습니다 : 열려는 데 실패했습니다 : ENOENT (해당 파일 없음 또는 디렉토리)가 질문에 이렇게 많은 검색하지만, 다음은 내 추적Android : open failed : ENOENT (해당 파일 또는 디렉토리 없음)
입니다 내가<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
아래와 같이 권한을 언급 한 다음 내 코드
public void readXlsFileAndConvertToJsonObject() {
JSONArray jsonArray = new JSONArray();
JSONArray mainJsonArray = new JSONArray();
try {
File file = new File("file:///android_asset/filters.xls");
FileInputStream fis = new FileInputStream(file);
//final FileInputStream file = new FileInputStream(new File("filters.xls"));
int count = 0;
// Get the workbook instance for XLS file
HSSFWorkbook workbook = new HSSFWorkbook(fis);
// Get first sheet from the workbook
HSSFSheet sheet = workbook.getSheetAt(0);
// Iterate through each rows from first sheet
Iterator <Row> rowIterator = sheet.iterator();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
//LOGGER.info("count is " + count);
if (count == 0 || count == 1) {} else {
try {
JSONObject jsonMaterialObject = new JSONObject();
// Name
jsonMaterialObject.put("name", row.getCell(0)
.toString());
// thick ness
jsonMaterialObject.put("thickness", row.getCell(4)
.toString());
// rating_1
jsonMaterialObject.put("rating_1", row.getCell(5)
.toString());
// rating_2
jsonMaterialObject.put("rating_2", row.getCell(6)
.toString());
jsonMaterialObject.put("low_frequency_rank", row
.getCell(7).toString());
jsonMaterialObject.put("medium_frequency_rank", row
.getCell(8).toString());
jsonMaterialObject.put("high_frequency_rank", row
.getCell(9).toString());
// Add file size
final File dir = new File("file:///android_asset/filename");
final File[] ListFiles = dir.listFiles();
boolean found = false;
if (ListFiles.length == 0) {} else {
for (File aFile: ListFiles) {
System.out.println("Afile Name " + aFile.getName());
System.out.println("A file from json Name " + row.getCell(0).toString());
if (aFile.getName().equalsIgnoreCase(
row.getCell(0).toString() + ".pdf")) {
jsonMaterialObject.put("fileSize", truncateDecimal(aFile.length()/1024, 2));
found = true;
}
if (found) {
break;
}
}
jsonMaterialObject.put("pdfFileName", row
.getCell(0).toString() + ".pdf");
}
jsonArray.put(jsonMaterialObject);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
count++;
}
((Closeable) file).close();
} catch (FileNotFoundException e) {} catch (IOException e) {}
createMaterialJson(jsonArray.toString(), "finalfile.json");
}
인 솔루션 을 찾을 수 없습니다 철저 로그인하여 파일 이름을 확인 P
:
11-25 12:32:35.535: I/System.out(20019): Exception accured in readXlsFileAndConvertToJsonObject /file:/android_asset/filters.xls: open failed: ENOENT (No such file or directory)
어떻게 파일 이름을 변경 했습니까? 이 질문을 참조하십시오 : http://stackoverflow.com/questions/30882833/file-not-found-exception-when-trying-to-upload-file-to-xampp-server-from-android/30883016?noredirect=1 # comment49807367_30883016. 내 문제를 해결하도록 도와주세요. 미리 감사드립니다. – Keshav1234
파일 이름에 숫자가 무엇이 문제가 있습니까? 파일 이름을 변경하지 않고도 방법이 있습니까? –