[英]Android get the real path and file name from Uri
public void fileSearching(){
try{
// find1, find2 are buttons that open the file explorer
find1.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
Intent i = new Intent();
i.setAction(Intent.ACTION_GET_CONTENT);
i.setType("file/*");
check = 0;
startActivityForResult(i, CODE);
}
});
find2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent();
i.setAction(Intent.ACTION_GET_CONTENT);
i.setType("file/*");
check = 1;
startActivityForResult(i, CODE);
}
});
}
catch (Exception ex){}
}
@Override
public void onActivityResult(int request, int result, Intent data){
if (request == CODE && result == RESULT_OK){
Uri u = data.getData();
String path = data.getData().getPath();
}
}
拒绝/ external / file / 59,但我需要/ sdcard / downloads / ... +文件名
我需要这个,因为我想获取任何文件的sha-1,md5,...哈希。
如果我使用“ / external / file / xx”,它将给我FileNotFoundException。
我已经尝试了一些已经提出的解决方案,但似乎对我没有用,或者我不知道如何使用它
拒绝/ external / file / 59
那是因为您没有看过Uri
的方案。 如果方案为file
则getPath()
仅具有含义。 您很少会获得带有file
方案的Uri
。 通常,它将具有一个content
方案,在这种情况下,该路径对您毫无意义。
我需要这个,因为我想获取任何文件的sha-1,md5,...哈希。
使用ContentResolver
和openInputStream()
获得有关Uri
标识的内容的InputStream
。 将该InputStream
传递给您的哈希算法 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.