无法获取所选文件名的完整真实路径



我没有获取当前路径var名称"文件路径";im geting value E/文件路径:/document/29,但我选择的存储在下载文件夹中的文件名是";test.xlsx";我需要带有文件扩展名的文件名的原始路径才能在FileInputStream((中传递。我无法修复它。。。有人能给代码吗

btnimport.setOnClickListener(新视图.OnClickListener(({

@Override
public void onClick(View v) {
Intent fileintent = new Intent(Intent.ACTION_GET_CONTENT);
fileintent.setType("*/*");
try {
startActivityForResult(fileintent, requestcode);
} catch (ActivityNotFoundException e) {
lbl.setText("No activity can handle picking a file. Showing alternatives.");
}


protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (data == null)
return;
switch (requestCode) {
case requestcode:
String FilePath = data.getData().getPath();
Log.e("File path", FilePath);
if (FilePath.contains("/root_path"))
FilePath = FilePath.replace("/root_path", "");
Log.e("New File path", FilePath);
try {
if (resultCode == RESULT_OK) {
AssetManager am = this.getAssets();
InputStream inStream;
Workbook wb = null;
try {
inStream = new FileInputStream(FilePath);
Log.e("Extension",FilePath.substring(FilePath.lastIndexOf(".")));
if (FilePath.substring(FilePath.lastIndexOf(".")).equals(".xls")) {
Log.e("File Type", "Selected file is XLS");
wb = new HSSFWorkbook(inStream);
}
else if (FilePath.substring(FilePath.lastIndexOf(".")).equals(".xlsx")) {
Log.e("File Type", "Selected file is XLSX");
wb = new XSSFWorkbook(inStream);
}
else {
wb = null;
lbl.setText("Please select a valid Excel file");
return;
}
inStream.close();

我需要带有文件扩展名的文件名的原始路径才能在FileInputStream((中传递。

不需要"真实路径",因为您最好使用获得的uri打开输入流。

InputStream is = getContentResolver().openInputStream(data.getData());

使用该流,就好像它是您想要的流一样。

最新更新