ADD week 5
This commit is contained in:
		| @@ -0,0 +1,88 @@ | ||||
| package kotlin.io; | ||||
|  | ||||
| import java.io.File; | ||||
| import java.util.ArrayList; | ||||
| import java.util.Iterator; | ||||
| import java.util.List; | ||||
| import kotlin.Metadata; | ||||
| import kotlin.collections.CollectionsKt; | ||||
| import kotlin.jvm.internal.Intrinsics; | ||||
| import kotlin.text.StringsKt; | ||||
|  | ||||
| /* compiled from: FilePathComponents.kt */ | ||||
| @Metadata(d1 = {"\u0000$\n\u0000\n\u0002\u0010\u000b\n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0010\u000e\n\u0002\b\u0003\n\u0002\u0010\b\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0000\u001a\u0011\u0010\u000b\u001a\u00020\f*\u00020\bH\u0002¢\u0006\u0002\b\r\u001a\u001c\u0010\u000e\u001a\u00020\u0002*\u00020\u00022\u0006\u0010\u000f\u001a\u00020\f2\u0006\u0010\u0010\u001a\u00020\fH\u0000\u001a\f\u0010\u0011\u001a\u00020\u0012*\u00020\u0002H\u0000\"\u0015\u0010\u0000\u001a\u00020\u0001*\u00020\u00028F¢\u0006\u0006\u001a\u0004\b\u0000\u0010\u0003\"\u0018\u0010\u0004\u001a\u00020\u0002*\u00020\u00028@X\u0080\u0004¢\u0006\u0006\u001a\u0004\b\u0005\u0010\u0006\"\u0018\u0010\u0007\u001a\u00020\b*\u00020\u00028@X\u0080\u0004¢\u0006\u0006\u001a\u0004\b\t\u0010\n¨\u0006\u0013"}, d2 = {"isRooted", "", "Ljava/io/File;", "(Ljava/io/File;)Z", "root", "getRoot", "(Ljava/io/File;)Ljava/io/File;", "rootName", "", "getRootName", "(Ljava/io/File;)Ljava/lang/String;", "getRootLength", "", "getRootLength$FilesKt__FilePathComponentsKt", "subPath", "beginIndex", "endIndex", "toComponents", "Lkotlin/io/FilePathComponents;", "kotlin-stdlib"}, k = 5, mv = {1, 8, 0}, xi = 49, xs = "kotlin/io/FilesKt") | ||||
| /* loaded from: classes.dex */ | ||||
| class FilesKt__FilePathComponentsKt { | ||||
|     private static final int getRootLength$FilesKt__FilePathComponentsKt(String str) { | ||||
|         int indexOf$default; | ||||
|         String str2 = str; | ||||
|         int indexOf$default2 = StringsKt.indexOf$default((CharSequence) str2, File.separatorChar, 0, false, 4, (Object) null); | ||||
|         if (indexOf$default2 == 0) { | ||||
|             if (str.length() <= 1 || str.charAt(1) != File.separatorChar || (indexOf$default = StringsKt.indexOf$default((CharSequence) str2, File.separatorChar, 2, false, 4, (Object) null)) < 0) { | ||||
|                 return 1; | ||||
|             } | ||||
|             int indexOf$default3 = StringsKt.indexOf$default((CharSequence) str2, File.separatorChar, indexOf$default + 1, false, 4, (Object) null); | ||||
|             return indexOf$default3 >= 0 ? indexOf$default3 + 1 : str.length(); | ||||
|         } | ||||
|         if (indexOf$default2 > 0 && str.charAt(indexOf$default2 - 1) == ':') { | ||||
|             return indexOf$default2 + 1; | ||||
|         } | ||||
|         if (indexOf$default2 == -1 && StringsKt.endsWith$default((CharSequence) str2, ':', false, 2, (Object) null)) { | ||||
|             return str.length(); | ||||
|         } | ||||
|         return 0; | ||||
|     } | ||||
|  | ||||
|     public static final String getRootName(File file) { | ||||
|         Intrinsics.checkNotNullParameter(file, "<this>"); | ||||
|         String path = file.getPath(); | ||||
|         Intrinsics.checkNotNullExpressionValue(path, "path"); | ||||
|         String path2 = file.getPath(); | ||||
|         Intrinsics.checkNotNullExpressionValue(path2, "path"); | ||||
|         String substring = path.substring(0, getRootLength$FilesKt__FilePathComponentsKt(path2)); | ||||
|         Intrinsics.checkNotNullExpressionValue(substring, "this as java.lang.String…ing(startIndex, endIndex)"); | ||||
|         return substring; | ||||
|     } | ||||
|  | ||||
|     public static final File getRoot(File file) { | ||||
|         Intrinsics.checkNotNullParameter(file, "<this>"); | ||||
|         return new File(FilesKt.getRootName(file)); | ||||
|     } | ||||
|  | ||||
|     public static final boolean isRooted(File file) { | ||||
|         Intrinsics.checkNotNullParameter(file, "<this>"); | ||||
|         String path = file.getPath(); | ||||
|         Intrinsics.checkNotNullExpressionValue(path, "path"); | ||||
|         return getRootLength$FilesKt__FilePathComponentsKt(path) > 0; | ||||
|     } | ||||
|  | ||||
|     public static final FilePathComponents toComponents(File file) { | ||||
|         ArrayList arrayList; | ||||
|         Intrinsics.checkNotNullParameter(file, "<this>"); | ||||
|         String path = file.getPath(); | ||||
|         Intrinsics.checkNotNullExpressionValue(path, "path"); | ||||
|         int rootLength$FilesKt__FilePathComponentsKt = getRootLength$FilesKt__FilePathComponentsKt(path); | ||||
|         String substring = path.substring(0, rootLength$FilesKt__FilePathComponentsKt); | ||||
|         Intrinsics.checkNotNullExpressionValue(substring, "this as java.lang.String…ing(startIndex, endIndex)"); | ||||
|         String substring2 = path.substring(rootLength$FilesKt__FilePathComponentsKt); | ||||
|         Intrinsics.checkNotNullExpressionValue(substring2, "this as java.lang.String).substring(startIndex)"); | ||||
|         String str = substring2; | ||||
|         if (str.length() == 0) { | ||||
|             arrayList = CollectionsKt.emptyList(); | ||||
|         } else { | ||||
|             List split$default = StringsKt.split$default((CharSequence) str, new char[]{File.separatorChar}, false, 0, 6, (Object) null); | ||||
|             ArrayList arrayList2 = new ArrayList(CollectionsKt.collectionSizeOrDefault(split$default, 10)); | ||||
|             Iterator it = split$default.iterator(); | ||||
|             while (it.hasNext()) { | ||||
|                 arrayList2.add(new File((String) it.next())); | ||||
|             } | ||||
|             arrayList = arrayList2; | ||||
|         } | ||||
|         return new FilePathComponents(new File(substring), arrayList); | ||||
|     } | ||||
|  | ||||
|     public static final File subPath(File file, int i, int i2) { | ||||
|         Intrinsics.checkNotNullParameter(file, "<this>"); | ||||
|         return FilesKt.toComponents(file).subPath(i, i2); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user