这个问题在这里已经有答案了:
android kotlin:获取一个filenotfoundexception,其文件名是从文件选择器中选择的(3个答案)
android-获取从文件资源管理器中选择的.txt文件的实际路径(1个答案)
上个月关门了。
我没有获取当前路径var name“filepath”而是获取值e/file 路径:/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();
2条答案
按热度按时间h7appiyu1#
使用它将返回文件的实际路径
像这样使用
之后使用这个路径并创建新文件和文件的getrealname。
fwzugrvs2#
我需要具有文件扩展名的文件名的原始路径来传入fileinputstream()。
不,您不需要“真正的路径”,因为您最好使用获得的uri来打开输入流。
像使用你想要的流一样使用它。