/************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ import java.io.File; import java.net.MalformedURLException; public class URLHelper { /** * Because the office need URLs for loading/saving documents * we must convert used system pathes. * And java use another notation for file URLs ... correct it. * * @param aSystemPath * represent the file in system notation * * @return [String] * a file url which represent the given system path */ @SuppressWarnings("deprecation") public static String getFileURLFromSystemPath( File aSystemPath ) { String sFileURL = null; try { sFileURL = aSystemPath.toURL().toString(); } catch( MalformedURLException exWrong ) { sFileURL = null; } // problem of java: file URL's are coded with 1 slash instead of 2 or 3 ones! // => correct this problem first, otherwise office can't use these URL's if( (sFileURL != null ) && (sFileURL.startsWith("file:/") == true ) && (sFileURL.startsWith("file://") == false) ) { StringBuffer sWorkBuffer = new StringBuffer(sFileURL); sWorkBuffer.insert(6,"//"); sFileURL = sWorkBuffer.toString(); } return sFileURL; } }