1 package org.apache.maven.archetype.common.util;
2
3 /*
4 * Licensed to the Apache Software Foundation (ASF) under one
5 * or more contributor license agreements. See the NOTICE file
6 * distributed with this work for additional information
7 * regarding copyright ownership. The ASF licenses this file
8 * to you under the Apache License, Version 2.0 (the
9 * "License"); you may not use this file except in compliance
10 * with the License. You may obtain a copy of the License at
11 *
12 * http://www.apache.org/licenses/LICENSE-2.0
13 *
14 * Unless required by applicable law or agreed to in writing,
15 * software distributed under the License is distributed on an
16 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17 * KIND, either express or implied. See the License for the
18 * specific language governing permissions and limitations
19 * under the License.
20 */
21
22 import org.codehaus.plexus.util.StringUtils;
23
24 import java.io.File;
25 import java.util.ArrayList;
26 import java.util.List;
27
28 /** @author rafale */
29 public class PathUtils
30 {
31 /**
32 * This method converts all \ or / chars to File.separatorChar.
33 *
34 * @param path
35 * @return
36 */
37 public static String convertPathForOS( String path )
38 {
39 path = StringUtils.replace( path, "/", File.separator );
40 return StringUtils.replace( path, "\\", File.separator );
41 }
42
43 public static String getDirectory( String file, int level )
44 {
45 file = convertPathForOS( file );
46
47 String[] fileAsArray = StringUtils.split( file, File.separator );
48 List<String> directoryAsArray = new ArrayList<String>();
49
50 for ( int i = 0; ( i < level ) && ( i < ( fileAsArray.length - 1 ) ); i++ )
51 {
52 directoryAsArray.add( fileAsArray[i] );
53 }
54
55 return StringUtils.join( directoryAsArray.iterator(), File.separator );
56 }
57 }