Kotlin: Как получить дату создания файла (ИЗОБРАЖЕНИЯ)? - PullRequest
0 голосов
/ 25 февраля 2020

Я не могу точно понять, где я совершил глупую ошибку. Буду очень признателен за совет

val f:File = File("drawable/paystack_mark.png")
// val path:Path =  Paths.get("drawable/new_logo.jpg")
val attr = Files.readAttributes<BasicFileAttributes>(file.toPath(), BasicFileAttributes::class.java)

или

val path:Path =  Paths.get("drawable/new_logo.jpg")
val attr = Files.readAttributes<BasicFileAttributes>(path, BasicFileAttributes::class.java)

Я не могу точно понять, где я совершил глупую ошибку. Буду очень признателен за совет

Ответы [ 2 ]

0 голосов
/ 27 февраля 2020

Это работа для меня, и спасибо

// читать изображение из галлереи или вы можете указать прямой путь

        getImage()// read image
        val contentURI = data?.getData()
        var imageFile = File(contentURI?.let { getRealPathFromURI(it) })
        val lastModifiedDate: Date =  Date(imageFile.lastModified())
        println("creation time: " + attr.creationTime())

// получить функцию Native URI

private fun getRealPathFromURI(contentURI: Uri): String {
    var getApplicationContext = getContext()?.getContentResolver();
    var result: String
    var cursor: Cursor? =
        context?.getContentResolver()?.query(contentURI, null, null, null, null);
    if (cursor == null) { // Source is Dropbox or other similar local file path
        result = contentURI.getPath().toString();
    } else {
        cursor.moveToFirst();
        val idx: Int = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA);
        result = cursor.getString(idx);
        cursor.close();
    }
    return result;
}
0 голосов
/ 25 февраля 2020

Ваш второй пример работает нормально, я попробовал его на windows с правильным путем к файлу .png.

Вот как я его использовал (только что напечатал attr.creationTime()):

fun main(args: Array<String>) {
    val path: Path =  Paths.get("M:\\y\\path\\to\\the\\image.png")
    val attr = Files.readAttributes<BasicFileAttributes>(path, BasicFileAttributes::class.java)
    println("creation time: " + attr.creationTime())
}

Вывод был просто

creation time: 2018-03-16T13:11:57.40283Z

Имейте в виду, что вы кодируете для Android, поэтому, возможно, String -версии путей различны (см. Обратную косую черту для пути на windows машине).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...