我想从OnActivityResult
接收正常文件路径,如下所示:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (resultCode == RESULT_OK) {
Log.i("m", data!!.dataString!!)
convertFileToString(data.dataString!!)
}
}
java.io.FileNotFoundException: File 'content:/com.android.providers.media.documents/document/image%3A18' does not exist
try {
val data = FileUtils.readFileToByteArray(file) // this line
} catch (e: IOException) {
e.printStackTrace()
}
这个文件也存在,但我不能得到它。我在这里看到了一些建议获得real
路径的问题,如下所示:
fun getPath(context:Context, uri:Uri):String {
val result:String = null
val proj = arrayOf<String>(MediaStore.Images.Media.DATA)
val cursor = context.getContentResolver().query(uri, proj, null, null, null)
if (cursor != null)
{
if (cursor.moveToFirst())
{
val column_index = cursor.getColumnIndexOrThrow(proj[0])
result = cursor.getString(column_index)
}
cursor.close()
}
if (result == null)
{
result = "Not found"
}
return result
}
但此方法返回以下异常:
java.io.FileNotFoundException: File 'Not found' does not exist
因此,我在这里收到的data!!.datastring!!
:
content://com.android.providers.media.documents/document/image%3A18
/document/image:18
如何将文件转换为字符串:
fun convertFileToString(path: String) {
//dialog.dismiss()
val file = File(path)
for (i in 0 until sn.array!!.size()) {
val jsonObj = sn.array!![i].asJsonObject
val nFile = jsonObj.get("filename").asString
if (file.name == nFile) {
Toast.makeText(this, R.string.message_about_attached__file, Toast.LENGTH_SHORT).show()
return
}
}
try {
val data = FileUtils.readFileToByteArray(file)
uploadFiles(File(path).name, Base64.encodeToString(data, Base64.NO_WRAP))
} catch (e: IOException) {
e.printStackTrace()
}
}
我想从onActivityResult接收正常文件路径,如下所示:
我猜测您使用的是action_open_document
,或者action_get_content
。您将获得一个content
URI
,这正是那些intent
操作文档中要返回的内容。这样的URI
可能由以下人员支持:
blob
列中保存的字节流上下文
上调用GetContentResolver()
(如您的活动
ContentResolver
ContentResolver
上的OpenInputStream()
,传入您的URI
,以获取由URI
InputStream
InputStream
调用Reader().readText()
以获取表示文件内容的字符串
综合起来,应该是这样的:
val string = data.data?.let { contentResolver.openInputStream(it).use { it.reader().readText() } }
我知道,要放入值,我可以,要检索值,我可以,但在下面的代码中,它的行为不像预期的那样。检索值时,我获得。 设置值的代码: 并且我正在检索BroadCaseReceiver的onReceive中的值:[省略的无关代码]
我需要设置/添加照片/电影作为ToDo应用程序的附件。不幸的是:onActivityResult in line super。onActivityResult(请求代码、结果代码、数据);以红色突出显示,我得到一个错误: 无法解析方法“onActivityResult(int,int,android.content.Intent)” ctivity.java
我想使用共享命令从图库获取图像。 我目前的代码是: imageUri 的值为:content://media/external/images/media/37 但是函数“openInputStream”会抛出错误“java.io.FileNotFoundException”。 通过下面的函数,我得到了图像的真实路径。 但我不知道如何将其转换为位图。
问题内容: 当我在eclipse中导出可执行jar文件时,也需要使用res文件夹进行编译,当我使用不起作用的方法时。 当前读取的图像代码 代码无效 问题答案: 我现在已经解决了问题-这是有效的代码 fileName的值只是一个图像名称,例如BufferedImage img = loadImage(“ background.png”); 感谢大家的帮助。
问题内容: 我的目录设置如下: 我的主文件是这样的: 我的应用程序是这样的: 问题是当我运行应用程序时,无法加载CSS文件。 问题答案: 由于.css文件是静态文件,因此您必须将它们提供给客户端。但是,您不能将静态文件用作快速中间件。将以下中间件添加到您的express应用中,然后将文件夹移动到目录下(您应该创建一个) 因此您的最终目录结构应如下所示 并且不要忘记需要模块
当我在eclipse中导出可执行jar文件时,我需要获取res文件夹进行编译,当我使用方法时,它不起作用。 当前读取图像代码 不起作用的代码