我想在檔案名上添加一個后綴,這算起來。
val file = File(it.path)
如果檔案已經存在,我需要給檔案名添加一個后綴:filename(1).ext, filename(2).ext...往上數。
我試著重命名檔案,但它在檔案擴展名之后添加了后綴:filename.ext(1)
file.mkdirs()
if (file.exists()) {
file.renameTo(File(it.path " (1)")
}
file.createNewFile()
uj5u.com熱心網友回復:
讓我們考慮一下可能的情況:
1. "standard"情況,檔案名帶有擴展名:abc.jpg -> abc(1).jpg
2.沒有擴展名: abc -> abc(1)
3.雙擴展,如tar.gz: -> abc.tar.gz -> abc(1).tar.gz
因此,在所有情況下,我們要在第一個點出現之前追加后綴,或者如果在檔案末尾沒有擴展名的話。
fun appendSuffix(filename: String, suffix: String): String {
return if (filename.contains('. ' )) {
//有ext,最簡單的方法是替換第一個點:)
filename.replaceFirst(".", "$suffix. " )
} else {
//no ext
檔案名 后綴
}
和一些測驗:
fun main() {
println(appendSuffix("abc", "(1)")
println(appendSuffix("abc.jpg", "(1)")
println(appendSuffix("abc.tar.gz", "(1)")
}
// output:
abc(1)
abc(1).jpg
abc(1).tar.gz
如何使用它?我假設你知道如何獲得檔案名:)。 如果你需要檢查它是否應該是"(1) "或"(2)",你可以做一個簡單的回圈,其中你:
- 檢查檔案名是否存在。
- 檢查檔案名是否存在 。
- 應用"(n 1)"
- 回傳到1
uj5u.com熱心網友回復:
更新的答案 :
fun main() {
val fileName = "filename.ext"
val file = File(fileName)
file.mkdirs()
if (file.exists()) {
val extension = file.extension
var newFileName = fileName
for (i in 1..Int.MAX_VALUE) {
newFileName = file.nameWithoutExtension.plus("($i)。").plus(extension)
if (!File(newFileName).existence())
break
}
println(newFileName)
file.renameTo(File(newFileName))
file.createNewFile()
}
}
uj5u.com熱心網友回復:
你可以使用時間戳
。String timeStamp = new SimpleDateFormat("yyyyMMddHmmssSSS").format(new Date())。
String fileName = "filename_" timeStamp;
檔案imageFile = File.createTempFile(fileName, "jpg", getFilesDir())。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/328862.html
標籤:
上一篇:如何創建一個函式,在我想要的列上比較FIFA資料集的兩名球員?
下一篇:java中IST到UTC的轉換
