FileUtility.java 2.81 KB
/*
 * Decompiled with CFR 0_118.
 */
package com.adobe.internal.io;

import java.io.File;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URL;

class FileUtility {
    private static final boolean[] LEGAL_URL_PCHARS = new boolean[]{false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, false, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false};

    private FileUtility() {
    }

    public static URL fileToURL(File file) throws MalformedURLException {
        URI uri = file.toURI();
        return new URL("file", "", FileUtility.normalizeForURL(uri.getPath()));
    }

    private static String normalizeForURL(String filePath) {
        byte[] b;
        StringBuilder sb = new StringBuilder();
        try {
            b = filePath.getBytes("UTF8");
        }
        catch (UnsupportedEncodingException e) {
            throw new RuntimeException("Unable to get UTF-8 encoding.", e);
        }
        for (int i = 0; i < b.length; ++i) {
            if (LEGAL_URL_PCHARS[b[i] & 255]) {
                sb.append(b[i]);
                continue;
            }
            sb.append('%');
            sb.append(Integer.toHexString(b[i] & 255));
        }
        return sb.toString();
    }
}