fedilab-Android-App/app/src/main/java/app/fedilab/android/helper/FileNameCleaner.java

27 lines
861 B
Java
Raw Normal View History

2019-05-18 11:10:30 +02:00
package app.fedilab.android.helper;
2019-04-16 18:32:38 +02:00
import java.util.Arrays;
/**
2019-05-05 17:11:23 +02:00
* Work from https://stackoverflow.com/a/26420820
2019-04-16 18:32:38 +02:00
*/
2019-05-05 17:11:23 +02:00
public class FileNameCleaner {
2019-04-16 18:32:38 +02:00
private final static int[] illegalChars = {34, 60, 62, 124, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 58, 42, 63, 92, 47};
2019-05-05 17:11:23 +02:00
2019-04-16 18:32:38 +02:00
static {
Arrays.sort(illegalChars);
}
2019-05-05 17:11:23 +02:00
2019-04-16 18:32:38 +02:00
public static String cleanFileName(String badFileName) {
StringBuilder cleanName = new StringBuilder();
2019-05-05 17:11:23 +02:00
int len = badFileName.codePointCount(0, badFileName.length());
2019-09-06 17:55:14 +02:00
for (int i = 0; i < len; i++) {
2019-05-05 17:11:23 +02:00
int c = badFileName.codePointAt(i);
2019-04-16 18:32:38 +02:00
if (Arrays.binarySearch(illegalChars, c) < 0) {
2019-05-05 17:11:23 +02:00
cleanName.appendCodePoint(c);
2019-04-16 18:32:38 +02:00
}
}
return cleanName.toString();
}
2019-05-05 17:11:23 +02:00
}