|
@@ -28,40 +28,48 @@ object AutoRename {
|
|
val pathSegments = filename.split(OCFile.PATH_SEPARATOR).toMutableList()
|
|
val pathSegments = filename.split(OCFile.PATH_SEPARATOR).toMutableList()
|
|
|
|
|
|
capability.run {
|
|
capability.run {
|
|
- forbiddenFilenameCharactersJson?.let {
|
|
|
|
|
|
+ if (forbiddenFilenameCharactersJson != null) {
|
|
var forbiddenFilenameCharacters = capability.forbiddenFilenameCharacters()
|
|
var forbiddenFilenameCharacters = capability.forbiddenFilenameCharacters()
|
|
|
|
+
|
|
if (isFolderPath) {
|
|
if (isFolderPath) {
|
|
forbiddenFilenameCharacters = forbiddenFilenameCharacters.filter { it != OCFile.PATH_SEPARATOR }
|
|
forbiddenFilenameCharacters = forbiddenFilenameCharacters.filter { it != OCFile.PATH_SEPARATOR }
|
|
}
|
|
}
|
|
|
|
|
|
pathSegments.replaceAll { segment ->
|
|
pathSegments.replaceAll { segment ->
|
|
var modifiedSegment = segment
|
|
var modifiedSegment = segment
|
|
|
|
+
|
|
forbiddenFilenameCharacters.forEach { forbiddenChar ->
|
|
forbiddenFilenameCharacters.forEach { forbiddenChar ->
|
|
if (modifiedSegment.contains(forbiddenChar)) {
|
|
if (modifiedSegment.contains(forbiddenChar)) {
|
|
modifiedSegment = modifiedSegment.replace(forbiddenChar, REPLACEMENT)
|
|
modifiedSegment = modifiedSegment.replace(forbiddenChar, REPLACEMENT)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
modifiedSegment
|
|
modifiedSegment
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- forbiddenFilenameExtensionJson?.let {
|
|
|
|
- forbiddenFilenameExtensions().forEach { forbiddenExtension ->
|
|
|
|
- pathSegments.replaceAll { segment ->
|
|
|
|
- var modifiedSegment = segment
|
|
|
|
- if (forbiddenExtension == StringConstants.SPACE) {
|
|
|
|
- modifiedSegment = modifiedSegment.trim()
|
|
|
|
- }
|
|
|
|
|
|
+ if (forbiddenFilenameExtensionJson != null) {
|
|
|
|
+ val forbiddenFilenameExtensions = forbiddenFilenameExtensions()
|
|
|
|
|
|
- if (modifiedSegment.endsWith(forbiddenExtension, ignoreCase = true) ||
|
|
|
|
- modifiedSegment.startsWith(forbiddenExtension, ignoreCase = true)
|
|
|
|
- ) {
|
|
|
|
- modifiedSegment = modifiedSegment.replace(forbiddenExtension, REPLACEMENT)
|
|
|
|
- }
|
|
|
|
|
|
+ forbiddenFilenameExtensions.find { it == StringConstants.SPACE }?.let {
|
|
|
|
+ pathSegments.replaceAll { segment ->
|
|
|
|
+ segment.trim()
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
- modifiedSegment
|
|
|
|
|
|
+ forbiddenFilenameExtensions.find { it == StringConstants.DOT }?.let { forbiddenExtension ->
|
|
|
|
+ pathSegments.replaceAll { segment ->
|
|
|
|
+ replacePathSegment(forbiddenExtension, segment)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ forbiddenFilenameExtensions
|
|
|
|
+ .filter { it != StringConstants.SPACE && it != StringConstants.DOT }
|
|
|
|
+ .forEach { forbiddenExtension ->
|
|
|
|
+ pathSegments.replaceAll { segment ->
|
|
|
|
+ replacePathSegment(forbiddenExtension, segment)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -74,6 +82,16 @@ object AutoRename {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private fun replacePathSegment(forbiddenExtension: String, segment: String): String {
|
|
|
|
+ return if (segment.endsWith(forbiddenExtension, ignoreCase = true) ||
|
|
|
|
+ segment.startsWith(forbiddenExtension, ignoreCase = true)
|
|
|
|
+ ) {
|
|
|
|
+ segment.replace(forbiddenExtension, REPLACEMENT)
|
|
|
|
+ } else {
|
|
|
|
+ segment
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
private fun convertToUTF8(filename: String): String {
|
|
private fun convertToUTF8(filename: String): String {
|
|
return String(filename.toByteArray(), Charsets.UTF_8)
|
|
return String(filename.toByteArray(), Charsets.UTF_8)
|
|
}
|
|
}
|