.class Lkotlin/io/FilesKt__UtilsKt; .super Lkotlin/io/FilesKt__FileTreeWalkKt; .source "Utils.kt" # annotations .annotation system Ldalvik/annotation/SourceDebugExtension; value = "SMAP\nUtils.kt\nKotlin\n*S Kotlin\n*F\n+ 1 Utils.kt\nkotlin/io/FilesKt__UtilsKt\n+ 2 fake.kt\nkotlin/jvm/internal/FakeKt\n+ 3 _Sequences.kt\nkotlin/sequences/SequencesKt___SequencesKt\n*L\n1#1,473:1\n1#2:474\n1261#3,3:475\n*S KotlinDebug\n*F\n+ 1 Utils.kt\nkotlin/io/FilesKt__UtilsKt\n*L\n347#1:475,3\n*E\n" .end annotation .annotation runtime Lkotlin/Metadata; d1 = { "\u0000<\n\u0000\n\u0002\u0010\u000e\n\u0002\u0018\u0002\n\u0002\u0008\u000c\n\u0002\u0010\u000b\n\u0002\u0008\u0003\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0008\u0002\n\u0002\u0010\u0008\n\u0002\u0008\u0004\n\u0002\u0010 \n\u0000\n\u0002\u0018\u0002\n\u0002\u0008\u000c\u001a*\u0010\t\u001a\u00020\u00022\u0008\u0008\u0002\u0010\n\u001a\u00020\u00012\n\u0008\u0002\u0010\u000b\u001a\u0004\u0018\u00010\u00012\n\u0008\u0002\u0010\u000c\u001a\u0004\u0018\u00010\u0002H\u0007\u001a*\u0010\r\u001a\u00020\u00022\u0008\u0008\u0002\u0010\n\u001a\u00020\u00012\n\u0008\u0002\u0010\u000b\u001a\u0004\u0018\u00010\u00012\n\u0008\u0002\u0010\u000c\u001a\u0004\u0018\u00010\u0002H\u0007\u001a8\u0010\u000e\u001a\u00020\u000f*\u00020\u00022\u0006\u0010\u0010\u001a\u00020\u00022\u0008\u0008\u0002\u0010\u0011\u001a\u00020\u000f2\u001a\u0008\u0002\u0010\u0012\u001a\u0014\u0012\u0004\u0012\u00020\u0002\u0012\u0004\u0012\u00020\u0014\u0012\u0004\u0012\u00020\u00150\u0013\u001a&\u0010\u0016\u001a\u00020\u0002*\u00020\u00022\u0006\u0010\u0010\u001a\u00020\u00022\u0008\u0008\u0002\u0010\u0011\u001a\u00020\u000f2\u0008\u0008\u0002\u0010\u0017\u001a\u00020\u0018\u001a\n\u0010\u0019\u001a\u00020\u000f*\u00020\u0002\u001a\u0012\u0010\u001a\u001a\u00020\u000f*\u00020\u00022\u0006\u0010\u001b\u001a\u00020\u0002\u001a\u0012\u0010\u001a\u001a\u00020\u000f*\u00020\u00022\u0006\u0010\u001b\u001a\u00020\u0001\u001a\n\u0010\u001c\u001a\u00020\u0002*\u00020\u0002\u001a\u001d\u0010\u001c\u001a\u0008\u0012\u0004\u0012\u00020\u00020\u001d*\u0008\u0012\u0004\u0012\u00020\u00020\u001dH\u0002\u00a2\u0006\u0002\u0008\u001e\u001a\u0011\u0010\u001c\u001a\u00020\u001f*\u00020\u001fH\u0002\u00a2\u0006\u0002\u0008\u001e\u001a\u0012\u0010 \u001a\u00020\u0002*\u00020\u00022\u0006\u0010!\u001a\u00020\u0002\u001a\u0014\u0010\"\u001a\u0004\u0018\u00010\u0002*\u00020\u00022\u0006\u0010!\u001a\u00020\u0002\u001a\u0012\u0010#\u001a\u00020\u0002*\u00020\u00022\u0006\u0010!\u001a\u00020\u0002\u001a\u0012\u0010$\u001a\u00020\u0002*\u00020\u00022\u0006\u0010%\u001a\u00020\u0002\u001a\u0012\u0010$\u001a\u00020\u0002*\u00020\u00022\u0006\u0010%\u001a\u00020\u0001\u001a\u0012\u0010&\u001a\u00020\u0002*\u00020\u00022\u0006\u0010%\u001a\u00020\u0002\u001a\u0012\u0010&\u001a\u00020\u0002*\u00020\u00022\u0006\u0010%\u001a\u00020\u0001\u001a\u0012\u0010\'\u001a\u00020\u000f*\u00020\u00022\u0006\u0010\u001b\u001a\u00020\u0002\u001a\u0012\u0010\'\u001a\u00020\u000f*\u00020\u00022\u0006\u0010\u001b\u001a\u00020\u0001\u001a\u0012\u0010(\u001a\u00020\u0001*\u00020\u00022\u0006\u0010!\u001a\u00020\u0002\u001a\u001b\u0010)\u001a\u0004\u0018\u00010\u0001*\u00020\u00022\u0006\u0010!\u001a\u00020\u0002H\u0002\u00a2\u0006\u0002\u0008*\"\u0015\u0010\u0000\u001a\u00020\u0001*\u00020\u00028F\u00a2\u0006\u0006\u001a\u0004\u0008\u0003\u0010\u0004\"\u0015\u0010\u0005\u001a\u00020\u0001*\u00020\u00028F\u00a2\u0006\u0006\u001a\u0004\u0008\u0006\u0010\u0004\"\u0015\u0010\u0007\u001a\u00020\u0001*\u00020\u00028F\u00a2\u0006\u0006\u001a\u0004\u0008\u0008\u0010\u0004\u00a8\u0006+" } d2 = { "extension", "", "Ljava/io/File;", "getExtension", "(Ljava/io/File;)Ljava/lang/String;", "invariantSeparatorsPath", "getInvariantSeparatorsPath", "nameWithoutExtension", "getNameWithoutExtension", "createTempDir", "prefix", "suffix", "directory", "createTempFile", "copyRecursively", "", "target", "overwrite", "onError", "Lkotlin/Function2;", "Ljava/io/IOException;", "Lkotlin/io/OnErrorAction;", "copyTo", "bufferSize", "", "deleteRecursively", "endsWith", "other", "normalize", "", "normalize$FilesKt__UtilsKt", "Lkotlin/io/FilePathComponents;", "relativeTo", "base", "relativeToOrNull", "relativeToOrSelf", "resolve", "relative", "resolveSibling", "startsWith", "toRelativeString", "toRelativeStringOrNull", "toRelativeStringOrNull$FilesKt__UtilsKt", "kotlin-stdlib" } k = 0x5 mv = { 0x1, 0x5, 0x1 } xi = 0x1 xs = "kotlin/io/FilesKt" .end annotation # direct methods .method public constructor ()V .registers 1 invoke-direct {p0}, Lkotlin/io/FilesKt__FileTreeWalkKt;->()V return-void .end method .method public static final copyRecursively(Ljava/io/File;Ljava/io/File;ZLkotlin/jvm/functions/Function2;)Z .registers 15 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/io/File;", "Ljava/io/File;", "Z", "Lkotlin/jvm/functions/Function2<", "-", "Ljava/io/File;", "-", "Ljava/io/IOException;", "+", "Lkotlin/io/OnErrorAction;", ">;)Z" } .end annotation const-string v0, "$this$copyRecursively" invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V const-string v0, "target" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V const-string v0, "onError" invoke-static {p3, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V .line 293 invoke-virtual {p0}, Ljava/io/File;->exists()Z move-result v0 const/4 v1, 0x1 const/4 v2, 0x0 if-nez v0, :cond_30 .line 294 new-instance p1, Lkotlin/io/NoSuchFileException; const/4 v7, 0x2 const/4 v8, 0x0 const/4 v5, 0x0 const-string v6, "The source file doesn\'t exist." move-object v3, p1 move-object v4, p0 invoke-direct/range {v3 .. v8}, Lkotlin/io/NoSuchFileException;->(Ljava/io/File;Ljava/io/File;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V invoke-interface {p3, p0, p1}, Lkotlin/jvm/functions/Function2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; move-result-object p0 check-cast p0, Lkotlin/io/OnErrorAction; sget-object p1, Lkotlin/io/OnErrorAction;->TERMINATE:Lkotlin/io/OnErrorAction; if-eq p0, p1, :cond_2e goto :goto_2f :cond_2e move v1, v2 :goto_2f return v1 .line 299 :cond_30 :try_start_30 invoke-static {p0}, Lkotlin/io/FilesKt;->walkTopDown(Ljava/io/File;)Lkotlin/io/FileTreeWalk; move-result-object v0 new-instance v3, Lkotlin/io/FilesKt__UtilsKt$copyRecursively$2; invoke-direct {v3, p3}, Lkotlin/io/FilesKt__UtilsKt$copyRecursively$2;->(Lkotlin/jvm/functions/Function2;)V check-cast v3, Lkotlin/jvm/functions/Function2; invoke-virtual {v0, v3}, Lkotlin/io/FileTreeWalk;->onFail(Lkotlin/jvm/functions/Function2;)Lkotlin/io/FileTreeWalk; move-result-object v0 invoke-virtual {v0}, Lkotlin/io/FileTreeWalk;->iterator()Ljava/util/Iterator; move-result-object v0 :cond_43 :goto_43 invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z move-result v3 if-eqz v3, :cond_e0 invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v3 check-cast v3, Ljava/io/File; .line 300 invoke-virtual {v3}, Ljava/io/File;->exists()Z move-result v4 if-nez v4, :cond_6c .line 301 new-instance v10, Lkotlin/io/NoSuchFileException; const-string v7, "The source file doesn\'t exist." const/4 v8, 0x2 const/4 v9, 0x0 const/4 v6, 0x0 move-object v4, v10 move-object v5, v3 invoke-direct/range {v4 .. v9}, Lkotlin/io/NoSuchFileException;->(Ljava/io/File;Ljava/io/File;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V invoke-interface {p3, v3, v10}, Lkotlin/jvm/functions/Function2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; move-result-object v3 check-cast v3, Lkotlin/io/OnErrorAction; sget-object v4, Lkotlin/io/OnErrorAction;->TERMINATE:Lkotlin/io/OnErrorAction; if-ne v3, v4, :cond_43 return v2 .line 305 :cond_6c invoke-static {v3, p0}, Lkotlin/io/FilesKt;->toRelativeString(Ljava/io/File;Ljava/io/File;)Ljava/lang/String; move-result-object v4 .line 306 new-instance v5, Ljava/io/File; invoke-direct {v5, p1, v4}, Ljava/io/File;->(Ljava/io/File;Ljava/lang/String;)V .line 307 invoke-virtual {v5}, Ljava/io/File;->exists()Z move-result v4 if-eqz v4, :cond_af invoke-virtual {v3}, Ljava/io/File;->isDirectory()Z move-result v4 if-eqz v4, :cond_87 invoke-virtual {v5}, Ljava/io/File;->isDirectory()Z move-result v4 if-nez v4, :cond_af :cond_87 if-nez p2, :cond_8a goto :goto_9d .line 309 :cond_8a invoke-virtual {v5}, Ljava/io/File;->isDirectory()Z move-result v4 if-eqz v4, :cond_97 .line 310 invoke-static {v5}, Lkotlin/io/FilesKt;->deleteRecursively(Ljava/io/File;)Z move-result v4 if-nez v4, :cond_af goto :goto_9d .line 312 :cond_97 invoke-virtual {v5}, Ljava/io/File;->delete()Z move-result v4 if-nez v4, :cond_af .line 316 :goto_9d new-instance v4, Lkotlin/io/FileAlreadyExistsException; .line 318 const-string v6, "The destination file already exists." .line 316 invoke-direct {v4, v3, v5, v6}, Lkotlin/io/FileAlreadyExistsException;->(Ljava/io/File;Ljava/io/File;Ljava/lang/String;)V invoke-interface {p3, v5, v4}, Lkotlin/jvm/functions/Function2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; move-result-object v3 check-cast v3, Lkotlin/io/OnErrorAction; sget-object v4, Lkotlin/io/OnErrorAction;->TERMINATE:Lkotlin/io/OnErrorAction; if-ne v3, v4, :cond_43 return v2 .line 325 :cond_af invoke-virtual {v3}, Ljava/io/File;->isDirectory()Z move-result v4 if-eqz v4, :cond_b9 .line 326 invoke-virtual {v5}, Ljava/io/File;->mkdirs()Z goto :goto_43 :cond_b9 const/4 v8, 0x4 const/4 v9, 0x0 const/4 v7, 0x0 move-object v4, v3 move v6, p2 .line 328 invoke-static/range {v4 .. v9}, Lkotlin/io/FilesKt;->copyTo$default(Ljava/io/File;Ljava/io/File;ZIILjava/lang/Object;)Ljava/io/File; move-result-object v4 invoke-virtual {v4}, Ljava/io/File;->length()J move-result-wide v4 invoke-virtual {v3}, Ljava/io/File;->length()J move-result-wide v6 cmp-long v4, v4, v6 if-eqz v4, :cond_43 .line 329 new-instance v4, Ljava/io/IOException; const-string v5, "Source file wasn\'t copied completely, length of destination file differs." invoke-direct {v4, v5}, Ljava/io/IOException;->(Ljava/lang/String;)V invoke-interface {p3, v3, v4}, Lkotlin/jvm/functions/Function2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; move-result-object v3 check-cast v3, Lkotlin/io/OnErrorAction; sget-object v4, Lkotlin/io/OnErrorAction;->TERMINATE:Lkotlin/io/OnErrorAction; :try_end_dd .catch Lkotlin/io/TerminateException; {:try_start_30 .. :try_end_dd} :catch_e1 if-ne v3, v4, :cond_43 return v2 :cond_e0 return v1 :catch_e1 return v2 .end method .method public static synthetic copyRecursively$default(Ljava/io/File;Ljava/io/File;ZLkotlin/jvm/functions/Function2;ILjava/lang/Object;)Z .registers 6 and-int/lit8 p5, p4, 0x2 if-eqz p5, :cond_5 const/4 p2, 0x0 :cond_5 and-int/lit8 p4, p4, 0x4 if-eqz p4, :cond_d .line 291 sget-object p3, Lkotlin/io/FilesKt__UtilsKt$copyRecursively$1;->INSTANCE:Lkotlin/io/FilesKt__UtilsKt$copyRecursively$1; check-cast p3, Lkotlin/jvm/functions/Function2; :cond_d invoke-static {p0, p1, p2, p3}, Lkotlin/io/FilesKt;->copyRecursively(Ljava/io/File;Ljava/io/File;ZLkotlin/jvm/functions/Function2;)Z move-result p0 return p0 .end method .method public static final copyTo(Ljava/io/File;Ljava/io/File;ZI)Ljava/io/File; .registers 10 const-string v0, "$this$copyTo" invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V const-string v0, "target" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V .line 218 invoke-virtual {p0}, Ljava/io/File;->exists()Z move-result v0 if-eqz v0, :cond_8a .line 222 invoke-virtual {p1}, Ljava/io/File;->exists()Z move-result v0 if-eqz v0, :cond_33 if-eqz p2, :cond_29 .line 225 invoke-virtual {p1}, Ljava/io/File;->delete()Z move-result p2 if-eqz p2, :cond_1f goto :goto_33 .line 226 :cond_1f new-instance p2, Lkotlin/io/FileAlreadyExistsException; const-string p3, "Tried to overwrite the destination, but failed to delete it." invoke-direct {p2, p0, p1, p3}, Lkotlin/io/FileAlreadyExistsException;->(Ljava/io/File;Ljava/io/File;Ljava/lang/String;)V check-cast p2, Ljava/lang/Throwable; throw p2 .line 224 :cond_29 new-instance p2, Lkotlin/io/FileAlreadyExistsException; const-string p3, "The destination file already exists." invoke-direct {p2, p0, p1, p3}, Lkotlin/io/FileAlreadyExistsException;->(Ljava/io/File;Ljava/io/File;Ljava/lang/String;)V check-cast p2, Ljava/lang/Throwable; throw p2 .line 229 :cond_33 :goto_33 invoke-virtual {p0}, Ljava/io/File;->isDirectory()Z move-result p2 if-eqz p2, :cond_4a .line 230 invoke-virtual {p1}, Ljava/io/File;->mkdirs()Z move-result p2 if-eqz p2, :cond_40 goto :goto_7b .line 231 :cond_40 new-instance p2, Lkotlin/io/FileSystemException; const-string p3, "Failed to create target directory." invoke-direct {p2, p0, p1, p3}, Lkotlin/io/FileSystemException;->(Ljava/io/File;Ljava/io/File;Ljava/lang/String;)V check-cast p2, Ljava/lang/Throwable; throw p2 .line 233 :cond_4a invoke-virtual {p1}, Ljava/io/File;->getParentFile()Ljava/io/File; move-result-object p2 if-eqz p2, :cond_53 invoke-virtual {p2}, Ljava/io/File;->mkdirs()Z .line 235 :cond_53 new-instance p2, Ljava/io/FileInputStream; invoke-direct {p2, p0}, Ljava/io/FileInputStream;->(Ljava/io/File;)V check-cast p2, Ljava/io/Closeable; const/4 p0, 0x0 move-object v0, p0 check-cast v0, Ljava/lang/Throwable; :try_start_5e move-object v0, p2 check-cast v0, Ljava/io/FileInputStream; .line 236 new-instance v1, Ljava/io/FileOutputStream; invoke-direct {v1, p1}, Ljava/io/FileOutputStream;->(Ljava/io/File;)V check-cast v1, Ljava/io/Closeable; move-object v2, p0 check-cast v2, Ljava/lang/Throwable; :try_end_6b .catchall {:try_start_5e .. :try_end_6b} :catchall_83 :try_start_6b move-object v2, v1 check-cast v2, Ljava/io/FileOutputStream; .line 237 check-cast v0, Ljava/io/InputStream; check-cast v2, Ljava/io/OutputStream; invoke-static {v0, v2, p3}, Lkotlin/io/ByteStreamsKt;->copyTo(Ljava/io/InputStream;Ljava/io/OutputStream;I)J :try_end_75 .catchall {:try_start_6b .. :try_end_75} :catchall_7c .line 236 :try_start_75 invoke-static {v1, p0}, Lkotlin/io/CloseableKt;->closeFinally(Ljava/io/Closeable;Ljava/lang/Throwable;)V :try_end_78 .catchall {:try_start_75 .. :try_end_78} :catchall_83 .line 235 invoke-static {p2, p0}, Lkotlin/io/CloseableKt;->closeFinally(Ljava/io/Closeable;Ljava/lang/Throwable;)V :goto_7b return-object p1 :catchall_7c move-exception p0 .line 236 :try_start_7d throw p0 :try_end_7e .catchall {:try_start_7d .. :try_end_7e} :catchall_7e :catchall_7e move-exception p1 :try_start_7f invoke-static {v1, p0}, Lkotlin/io/CloseableKt;->closeFinally(Ljava/io/Closeable;Ljava/lang/Throwable;)V throw p1 :try_end_83 .catchall {:try_start_7f .. :try_end_83} :catchall_83 :catchall_83 move-exception p0 .line 235 :try_start_84 throw p0 :try_end_85 .catchall {:try_start_84 .. :try_end_85} :catchall_85 :catchall_85 move-exception p1 invoke-static {p2, p0}, Lkotlin/io/CloseableKt;->closeFinally(Ljava/io/Closeable;Ljava/lang/Throwable;)V throw p1 .line 219 :cond_8a new-instance p1, Lkotlin/io/NoSuchFileException; const/4 v4, 0x2 const/4 v5, 0x0 const/4 v2, 0x0 const-string v3, "The source file doesn\'t exist." move-object v0, p1 move-object v1, p0 invoke-direct/range {v0 .. v5}, Lkotlin/io/NoSuchFileException;->(Ljava/io/File;Ljava/io/File;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V check-cast p1, Ljava/lang/Throwable; throw p1 .end method .method public static synthetic copyTo$default(Ljava/io/File;Ljava/io/File;ZIILjava/lang/Object;)Ljava/io/File; .registers 6 and-int/lit8 p5, p4, 0x2 if-eqz p5, :cond_5 const/4 p2, 0x0 :cond_5 and-int/lit8 p4, p4, 0x4 if-eqz p4, :cond_b const/16 p3, 0x2000 .line 217 :cond_b invoke-static {p0, p1, p2, p3}, Lkotlin/io/FilesKt;->copyTo(Ljava/io/File;Ljava/io/File;ZI)Ljava/io/File; move-result-object p0 return-object p0 .end method .method public static final createTempDir(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File; .registers 4 .annotation runtime Lkotlin/Deprecated; message = "Avoid creating temporary directories in the default temp location with this function due to too wide permissions on the newly created directory. Use kotlin.io.path.createTempDirectory instead." .end annotation const-string v0, "prefix" invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V .line 45 invoke-static {p0, p1, p2}, Ljava/io/File;->createTempFile(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File; move-result-object p0 .line 46 invoke-virtual {p0}, Ljava/io/File;->delete()Z .line 47 invoke-virtual {p0}, Ljava/io/File;->mkdir()Z move-result p1 if-eqz p1, :cond_18 .line 48 const-string p1, "dir" invoke-static {p0, p1}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V return-object p0 .line 50 :cond_18 new-instance p1, Ljava/io/IOException; new-instance p2, Ljava/lang/StringBuilder; const-string v0, "Unable to create temporary directory " invoke-direct {p2, v0}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p2, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object p0 const/16 p2, 0x2e invoke-virtual {p0, p2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-direct {p1, p0}, Ljava/io/IOException;->(Ljava/lang/String;)V check-cast p1, Ljava/lang/Throwable; throw p1 .end method .method public static synthetic createTempDir$default(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;ILjava/lang/Object;)Ljava/io/File; .registers 6 and-int/lit8 p4, p3, 0x1 if-eqz p4, :cond_6 .line 44 const-string p0, "tmp" :cond_6 and-int/lit8 p4, p3, 0x2 const/4 v0, 0x0 if-eqz p4, :cond_f move-object p1, v0 check-cast p1, Ljava/lang/String; move-object p1, v0 :cond_f and-int/lit8 p3, p3, 0x4 if-eqz p3, :cond_17 move-object p2, v0 check-cast p2, Ljava/io/File; move-object p2, v0 :cond_17 invoke-static {p0, p1, p2}, Lkotlin/io/FilesKt;->createTempDir(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File; move-result-object p0 return-object p0 .end method .method public static final createTempFile(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File; .registers 4 .annotation runtime Lkotlin/Deprecated; message = "Avoid creating temporary files in the default temp location with this function due to too wide permissions on the newly created file. Use kotlin.io.path.createTempFile instead or resort to java.io.File.createTempFile." .end annotation const-string v0, "prefix" invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V .line 85 invoke-static {p0, p1, p2}, Ljava/io/File;->createTempFile(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File; move-result-object p0 const-string p1, "File.createTempFile(prefix, suffix, directory)" invoke-static {p0, p1}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V return-object p0 .end method .method public static synthetic createTempFile$default(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;ILjava/lang/Object;)Ljava/io/File; .registers 6 and-int/lit8 p4, p3, 0x1 if-eqz p4, :cond_6 .line 84 const-string p0, "tmp" :cond_6 and-int/lit8 p4, p3, 0x2 const/4 v0, 0x0 if-eqz p4, :cond_f move-object p1, v0 check-cast p1, Ljava/lang/String; move-object p1, v0 :cond_f and-int/lit8 p3, p3, 0x4 if-eqz p3, :cond_17 move-object p2, v0 check-cast p2, Ljava/io/File; move-object p2, v0 :cond_17 invoke-static {p0, p1, p2}, Lkotlin/io/FilesKt;->createTempFile(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File; move-result-object p0 return-object p0 .end method .method public static final deleteRecursively(Ljava/io/File;)Z .registers 5 const-string v0, "$this$deleteRecursively" invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V .line 347 invoke-static {p0}, Lkotlin/io/FilesKt;->walkBottomUp(Ljava/io/File;)Lkotlin/io/FileTreeWalk; move-result-object p0 check-cast p0, Lkotlin/sequences/Sequence; .line 476 invoke-interface {p0}, Lkotlin/sequences/Sequence;->iterator()Ljava/util/Iterator; move-result-object p0 const/4 v0, 0x1 :goto_10 move v1, v0 :goto_11 invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z move-result v2 if-eqz v2, :cond_2e invoke-interface {p0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v2 check-cast v2, Ljava/io/File; .line 347 invoke-virtual {v2}, Ljava/io/File;->delete()Z move-result v3 if-nez v3, :cond_29 invoke-virtual {v2}, Ljava/io/File;->exists()Z move-result v2 if-nez v2, :cond_2c :cond_29 if-eqz v1, :cond_2c goto :goto_10 :cond_2c const/4 v1, 0x0 goto :goto_11 :cond_2e return v1 .end method .method public static final endsWith(Ljava/io/File;Ljava/io/File;)Z .registers 5 const-string v0, "$this$endsWith" invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V const-string v0, "other" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V .line 384 invoke-static {p0}, Lkotlin/io/FilesKt;->toComponents(Ljava/io/File;)Lkotlin/io/FilePathComponents; move-result-object v0 .line 385 invoke-static {p1}, Lkotlin/io/FilesKt;->toComponents(Ljava/io/File;)Lkotlin/io/FilePathComponents; move-result-object v1 .line 386 invoke-virtual {v1}, Lkotlin/io/FilePathComponents;->isRooted()Z move-result v2 if-eqz v2, :cond_1d .line 387 invoke-static {p0, p1}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z move-result p0 return p0 .line 388 :cond_1d invoke-virtual {v0}, Lkotlin/io/FilePathComponents;->getSize()I move-result p0 invoke-virtual {v1}, Lkotlin/io/FilePathComponents;->getSize()I move-result p1 sub-int/2addr p0, p1 if-gez p0, :cond_2a const/4 p0, 0x0 goto :goto_3e .line 390 :cond_2a invoke-virtual {v0}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List; move-result-object p1 invoke-virtual {v0}, Lkotlin/io/FilePathComponents;->getSize()I move-result v0 invoke-interface {p1, p0, v0}, Ljava/util/List;->subList(II)Ljava/util/List; move-result-object p0 invoke-virtual {v1}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List; move-result-object p1 invoke-virtual {p0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z move-result p0 :goto_3e return p0 .end method .method public static final endsWith(Ljava/io/File;Ljava/lang/String;)Z .registers 3 const-string v0, "$this$endsWith" invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V const-string v0, "other" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V .line 401 new-instance v0, Ljava/io/File; invoke-direct {v0, p1}, Ljava/io/File;->(Ljava/lang/String;)V invoke-static {p0, v0}, Lkotlin/io/FilesKt;->endsWith(Ljava/io/File;Ljava/io/File;)Z move-result p0 return p0 .end method .method public static final getExtension(Ljava/io/File;)Ljava/lang/String; .registers 3 const-string v0, "$this$extension" invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V .line 92 invoke-virtual {p0}, Ljava/io/File;->getName()Ljava/lang/String; move-result-object p0 const-string v0, "name" invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V const/16 v0, 0x2e const-string v1, "" invoke-static {p0, v0, v1}, Lkotlin/text/StringsKt;->substringAfterLast(Ljava/lang/String;CLjava/lang/String;)Ljava/lang/String; move-result-object p0 return-object p0 .end method .method public static final getInvariantSeparatorsPath(Ljava/io/File;)Ljava/lang/String; .registers 10 const-string v0, "$this$invariantSeparatorsPath" invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V .line 99 sget-char v0, Ljava/io/File;->separatorChar:C const/16 v1, 0x2f const-string v2, "path" if-eq v0, v1, :cond_20 invoke-virtual {p0}, Ljava/io/File;->getPath()Ljava/lang/String; move-result-object v3 invoke-static {v3, v2}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V sget-char v4, Ljava/io/File;->separatorChar:C const/4 v7, 0x4 const/4 v8, 0x0 const/16 v5, 0x2f const/4 v6, 0x0 invoke-static/range {v3 .. v8}, Lkotlin/text/StringsKt;->replace$default(Ljava/lang/String;CCZILjava/lang/Object;)Ljava/lang/String; move-result-object p0 goto :goto_27 :cond_20 invoke-virtual {p0}, Ljava/io/File;->getPath()Ljava/lang/String; move-result-object p0 invoke-static {p0, v2}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V :goto_27 return-object p0 .end method .method public static final getNameWithoutExtension(Ljava/io/File;)Ljava/lang/String; .registers 4 const-string v0, "$this$nameWithoutExtension" invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V .line 105 invoke-virtual {p0}, Ljava/io/File;->getName()Ljava/lang/String; move-result-object p0 const-string v0, "name" invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V const/4 v0, 0x0 const/4 v1, 0x2 const-string v2, "." invoke-static {p0, v2, v0, v1, v0}, Lkotlin/text/StringsKt;->substringBeforeLast$default(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String; move-result-object p0 return-object p0 .end method .method public static final normalize(Ljava/io/File;)Ljava/io/File; .registers 11 const-string v0, "$this$normalize" invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V .line 410 invoke-static {p0}, Lkotlin/io/FilesKt;->toComponents(Ljava/io/File;)Lkotlin/io/FilePathComponents; move-result-object p0 invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getRoot()Ljava/io/File; move-result-object v0 invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List; move-result-object p0 invoke-static {p0}, Lkotlin/io/FilesKt__UtilsKt;->normalize$FilesKt__UtilsKt(Ljava/util/List;)Ljava/util/List; move-result-object p0 move-object v1, p0 check-cast v1, Ljava/lang/Iterable; sget-object p0, Ljava/io/File;->separator:Ljava/lang/String; const-string v2, "File.separator" invoke-static {p0, v2}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V move-object v2, p0 check-cast v2, Ljava/lang/CharSequence; const/16 v8, 0x3e const/4 v9, 0x0 const/4 v3, 0x0 const/4 v4, 0x0 const/4 v5, 0x0 const/4 v6, 0x0 const/4 v7, 0x0 invoke-static/range {v1 .. v9}, Lkotlin/collections/CollectionsKt;->joinToString$default(Ljava/lang/Iterable;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;ILjava/lang/CharSequence;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Ljava/lang/String; move-result-object p0 invoke-static {v0, p0}, Lkotlin/io/FilesKt;->resolve(Ljava/io/File;Ljava/lang/String;)Ljava/io/File; move-result-object p0 return-object p0 .end method .method private static final normalize$FilesKt__UtilsKt(Ljava/util/List;)Ljava/util/List; .registers 6 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/util/List<", "+", "Ljava/io/File;", ">;)", "Ljava/util/List<", "Ljava/io/File;", ">;" } .end annotation .line 416 new-instance v0, Ljava/util/ArrayList; invoke-interface {p0}, Ljava/util/List;->size()I move-result v1 invoke-direct {v0, v1}, Ljava/util/ArrayList;->(I)V check-cast v0, Ljava/util/List; .line 417 invoke-interface {p0}, Ljava/util/List;->iterator()Ljava/util/Iterator; move-result-object p0 :goto_f invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z move-result v1 if-eqz v1, :cond_68 invoke-interface {p0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v1 check-cast v1, Ljava/io/File; .line 418 invoke-virtual {v1}, Ljava/io/File;->getName()Ljava/lang/String; move-result-object v2 if-nez v2, :cond_22 goto :goto_64 :cond_22 invoke-virtual {v2}, Ljava/lang/String;->hashCode()I move-result v3 const/16 v4, 0x2e if-eq v3, v4, :cond_5b const/16 v4, 0x5c0 if-eq v3, v4, :cond_2f goto :goto_64 .line 420 :cond_2f const-string v3, ".." invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v2 if-eqz v2, :cond_64 invoke-interface {v0}, Ljava/util/List;->isEmpty()Z move-result v2 if-nez v2, :cond_57 invoke-static {v0}, Lkotlin/collections/CollectionsKt;->last(Ljava/util/List;)Ljava/lang/Object; move-result-object v2 check-cast v2, Ljava/io/File; invoke-virtual {v2}, Ljava/io/File;->getName()Ljava/lang/String; move-result-object v2 invoke-static {v2, v3}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z move-result v2 if-nez v2, :cond_57 invoke-interface {v0}, Ljava/util/List;->size()I move-result v1 add-int/lit8 v1, v1, -0x1 invoke-interface {v0, v1}, Ljava/util/List;->remove(I)Ljava/lang/Object; goto :goto_f :cond_57 invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z goto :goto_f .line 419 :cond_5b const-string v3, "." invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v2 if-eqz v2, :cond_64 goto :goto_f .line 421 :cond_64 :goto_64 invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z goto :goto_f :cond_68 return-object v0 .end method .method private static final normalize$FilesKt__UtilsKt(Lkotlin/io/FilePathComponents;)Lkotlin/io/FilePathComponents; .registers 3 .line 413 new-instance v0, Lkotlin/io/FilePathComponents; invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getRoot()Ljava/io/File; move-result-object v1 invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List; move-result-object p0 invoke-static {p0}, Lkotlin/io/FilesKt__UtilsKt;->normalize$FilesKt__UtilsKt(Ljava/util/List;)Ljava/util/List; move-result-object p0 invoke-direct {v0, v1, p0}, Lkotlin/io/FilePathComponents;->(Ljava/io/File;Ljava/util/List;)V return-object v0 .end method .method public static final relativeTo(Ljava/io/File;Ljava/io/File;)Ljava/io/File; .registers 3 const-string v0, "$this$relativeTo" invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V const-string v0, "base" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V .line 128 new-instance v0, Ljava/io/File; invoke-static {p0, p1}, Lkotlin/io/FilesKt;->toRelativeString(Ljava/io/File;Ljava/io/File;)Ljava/lang/String; move-result-object p0 invoke-direct {v0, p0}, Ljava/io/File;->(Ljava/lang/String;)V return-object v0 .end method .method public static final relativeToOrNull(Ljava/io/File;Ljava/io/File;)Ljava/io/File; .registers 3 const-string v0, "$this$relativeToOrNull" invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V const-string v0, "base" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V .line 148 invoke-static {p0, p1}, Lkotlin/io/FilesKt__UtilsKt;->toRelativeStringOrNull$FilesKt__UtilsKt(Ljava/io/File;Ljava/io/File;)Ljava/lang/String; move-result-object p0 if-eqz p0, :cond_16 .line 474 new-instance p1, Ljava/io/File; .line 148 invoke-direct {p1, p0}, Ljava/io/File;->(Ljava/lang/String;)V goto :goto_17 :cond_16 const/4 p1, 0x0 :goto_17 return-object p1 .end method .method public static final relativeToOrSelf(Ljava/io/File;Ljava/io/File;)Ljava/io/File; .registers 3 const-string v0, "$this$relativeToOrSelf" invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V const-string v0, "base" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V .line 138 invoke-static {p0, p1}, Lkotlin/io/FilesKt__UtilsKt;->toRelativeStringOrNull$FilesKt__UtilsKt(Ljava/io/File;Ljava/io/File;)Ljava/lang/String; move-result-object p1 if-eqz p1, :cond_15 .line 474 new-instance p0, Ljava/io/File; .line 138 invoke-direct {p0, p1}, Ljava/io/File;->(Ljava/lang/String;)V :cond_15 return-object p0 .end method .method public static final resolve(Ljava/io/File;Ljava/io/File;)Ljava/io/File; .registers 7 const-string v0, "$this$resolve" invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V const-string v0, "relative" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V .line 437 invoke-static {p1}, Lkotlin/io/FilesKt;->isRooted(Ljava/io/File;)Z move-result v0 if-eqz v0, :cond_11 return-object p1 .line 439 :cond_11 invoke-virtual {p0}, Ljava/io/File;->toString()Ljava/lang/String; move-result-object p0 const-string v0, "this.toString()" invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V .line 440 move-object v0, p0 check-cast v0, Ljava/lang/CharSequence; invoke-interface {v0}, Ljava/lang/CharSequence;->length()I move-result v1 if-nez v1, :cond_24 goto :goto_2f :cond_24 sget-char v1, Ljava/io/File;->separatorChar:C const/4 v2, 0x2 const/4 v3, 0x0 const/4 v4, 0x0 invoke-static {v0, v1, v4, v2, v3}, Lkotlin/text/StringsKt;->endsWith$default(Ljava/lang/CharSequence;CZILjava/lang/Object;)Z move-result v0 if-eqz v0, :cond_46 :goto_2f new-instance v0, Ljava/io/File; new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1}, Ljava/lang/StringBuilder;->()V invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-direct {v0, p0}, Ljava/io/File;->(Ljava/lang/String;)V goto :goto_62 :cond_46 new-instance v0, Ljava/io/File; new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1}, Ljava/lang/StringBuilder;->()V invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p0 sget-char v1, Ljava/io/File;->separatorChar:C invoke-virtual {p0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-direct {v0, p0}, Ljava/io/File;->(Ljava/lang/String;)V :goto_62 return-object v0 .end method .method public static final resolve(Ljava/io/File;Ljava/lang/String;)Ljava/io/File; .registers 3 const-string v0, "$this$resolve" invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V const-string v0, "relative" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V .line 450 new-instance v0, Ljava/io/File; invoke-direct {v0, p1}, Ljava/io/File;->(Ljava/lang/String;)V invoke-static {p0, v0}, Lkotlin/io/FilesKt;->resolve(Ljava/io/File;Ljava/io/File;)Ljava/io/File; move-result-object p0 return-object p0 .end method .method public static final resolveSibling(Ljava/io/File;Ljava/io/File;)Ljava/io/File; .registers 4 const-string v0, "$this$resolveSibling" invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V const-string v0, "relative" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V .line 460 invoke-static {p0}, Lkotlin/io/FilesKt;->toComponents(Ljava/io/File;)Lkotlin/io/FilePathComponents; move-result-object p0 .line 461 invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getSize()I move-result v0 if-nez v0, :cond_1c new-instance v0, Ljava/io/File; const-string v1, ".." invoke-direct {v0, v1}, Ljava/io/File;->(Ljava/lang/String;)V goto :goto_27 :cond_1c invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getSize()I move-result v0 add-int/lit8 v0, v0, -0x1 const/4 v1, 0x0 invoke-virtual {p0, v1, v0}, Lkotlin/io/FilePathComponents;->subPath(II)Ljava/io/File; move-result-object v0 .line 462 :goto_27 invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getRoot()Ljava/io/File; move-result-object p0 invoke-static {p0, v0}, Lkotlin/io/FilesKt;->resolve(Ljava/io/File;Ljava/io/File;)Ljava/io/File; move-result-object p0 invoke-static {p0, p1}, Lkotlin/io/FilesKt;->resolve(Ljava/io/File;Ljava/io/File;)Ljava/io/File; move-result-object p0 return-object p0 .end method .method public static final resolveSibling(Ljava/io/File;Ljava/lang/String;)Ljava/io/File; .registers 3 const-string v0, "$this$resolveSibling" invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V const-string v0, "relative" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V .line 472 new-instance v0, Ljava/io/File; invoke-direct {v0, p1}, Ljava/io/File;->(Ljava/lang/String;)V invoke-static {p0, v0}, Lkotlin/io/FilesKt;->resolveSibling(Ljava/io/File;Ljava/io/File;)Ljava/io/File; move-result-object p0 return-object p0 .end method .method public static final startsWith(Ljava/io/File;Ljava/io/File;)Z .registers 5 const-string v0, "$this$startsWith" invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V const-string v0, "other" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V .line 357 invoke-static {p0}, Lkotlin/io/FilesKt;->toComponents(Ljava/io/File;)Lkotlin/io/FilePathComponents; move-result-object p0 .line 358 invoke-static {p1}, Lkotlin/io/FilesKt;->toComponents(Ljava/io/File;)Lkotlin/io/FilePathComponents; move-result-object p1 .line 359 invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getRoot()Ljava/io/File; move-result-object v0 invoke-virtual {p1}, Lkotlin/io/FilePathComponents;->getRoot()Ljava/io/File; move-result-object v1 invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z move-result v0 const/4 v1, 0x0 if-nez v0, :cond_22 return v1 .line 361 :cond_22 invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getSize()I move-result v0 invoke-virtual {p1}, Lkotlin/io/FilePathComponents;->getSize()I move-result v2 if-ge v0, v2, :cond_2d goto :goto_41 .line 362 :cond_2d invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List; move-result-object p0 invoke-virtual {p1}, Lkotlin/io/FilePathComponents;->getSize()I move-result v0 invoke-interface {p0, v1, v0}, Ljava/util/List;->subList(II)Ljava/util/List; move-result-object p0 invoke-virtual {p1}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List; move-result-object p1 invoke-virtual {p0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z move-result v1 :goto_41 return v1 .end method .method public static final startsWith(Ljava/io/File;Ljava/lang/String;)Z .registers 3 const-string v0, "$this$startsWith" invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V const-string v0, "other" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V .line 372 new-instance v0, Ljava/io/File; invoke-direct {v0, p1}, Ljava/io/File;->(Ljava/lang/String;)V invoke-static {p0, v0}, Lkotlin/io/FilesKt;->startsWith(Ljava/io/File;Ljava/io/File;)Z move-result p0 return p0 .end method .method public static final toRelativeString(Ljava/io/File;Ljava/io/File;)Ljava/lang/String; .registers 5 const-string v0, "$this$toRelativeString" invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V const-string v0, "base" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V .line 117 invoke-static {p0, p1}, Lkotlin/io/FilesKt__UtilsKt;->toRelativeStringOrNull$FilesKt__UtilsKt(Ljava/io/File;Ljava/io/File;)Ljava/lang/String; move-result-object v0 if-eqz v0, :cond_11 return-object v0 :cond_11 new-instance v0, Ljava/lang/IllegalArgumentException; new-instance v1, Ljava/lang/StringBuilder; const-string v2, "this and base files have different roots: " invoke-direct {v1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object p0 const-string v1, " and " invoke-virtual {p0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object p0 const/16 p1, 0x2e invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-direct {v0, p0}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V check-cast v0, Ljava/lang/Throwable; throw v0 .end method .method private static final toRelativeStringOrNull$FilesKt__UtilsKt(Ljava/io/File;Ljava/io/File;)Ljava/lang/String; .registers 16 .line 153 invoke-static {p0}, Lkotlin/io/FilesKt;->toComponents(Ljava/io/File;)Lkotlin/io/FilePathComponents; move-result-object p0 invoke-static {p0}, Lkotlin/io/FilesKt__UtilsKt;->normalize$FilesKt__UtilsKt(Lkotlin/io/FilePathComponents;)Lkotlin/io/FilePathComponents; move-result-object p0 .line 154 invoke-static {p1}, Lkotlin/io/FilesKt;->toComponents(Ljava/io/File;)Lkotlin/io/FilePathComponents; move-result-object p1 invoke-static {p1}, Lkotlin/io/FilesKt__UtilsKt;->normalize$FilesKt__UtilsKt(Lkotlin/io/FilePathComponents;)Lkotlin/io/FilePathComponents; move-result-object p1 .line 155 invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getRoot()Ljava/io/File; move-result-object v0 invoke-virtual {p1}, Lkotlin/io/FilePathComponents;->getRoot()Ljava/io/File; move-result-object v1 invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z move-result v0 const/4 v1, 0x0 if-nez v0, :cond_20 return-object v1 .line 159 :cond_20 invoke-virtual {p1}, Lkotlin/io/FilePathComponents;->getSize()I move-result v0 .line 160 invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getSize()I move-result v2 .line 164 invoke-static {v2, v0}, Ljava/lang/Math;->min(II)I move-result v3 const/4 v4, 0x0 :goto_2d if-ge v4, v3, :cond_4c .line 165 invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List; move-result-object v5 invoke-interface {v5, v4}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object v5 check-cast v5, Ljava/io/File; invoke-virtual {p1}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List; move-result-object v6 invoke-interface {v6, v4}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object v6 check-cast v6, Ljava/io/File; invoke-static {v5, v6}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z move-result v5 if-eqz v5, :cond_4c add-int/lit8 v4, v4, 0x1 goto :goto_2d .line 171 :cond_4c new-instance v3, Ljava/lang/StringBuilder; invoke-direct {v3}, Ljava/lang/StringBuilder;->()V add-int/lit8 v5, v0, -0x1 if-lt v5, v4, :cond_7b .line 173 :goto_55 invoke-virtual {p1}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List; move-result-object v6 invoke-interface {v6, v5}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object v6 check-cast v6, Ljava/io/File; invoke-virtual {v6}, Ljava/io/File;->getName()Ljava/lang/String; move-result-object v6 const-string v7, ".." invoke-static {v6, v7}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z move-result v6 if-eqz v6, :cond_6c return-object v1 .line 177 :cond_6c invoke-virtual {v3, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; if-eq v5, v4, :cond_76 .line 180 sget-char v6, Ljava/io/File;->separatorChar:C invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; :cond_76 if-eq v5, v4, :cond_7b add-int/lit8 v5, v5, -0x1 goto :goto_55 :cond_7b if-ge v4, v2, :cond_a9 if-ge v4, v0, :cond_84 .line 188 sget-char p1, Ljava/io/File;->separatorChar:C invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; .line 190 :cond_84 invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List; move-result-object p0 check-cast p0, Ljava/lang/Iterable; invoke-static {p0, v4}, Lkotlin/collections/CollectionsKt;->drop(Ljava/lang/Iterable;I)Ljava/util/List; move-result-object p0 move-object v4, p0 check-cast v4, Ljava/lang/Iterable; move-object v5, v3 check-cast v5, Ljava/lang/Appendable; sget-object p0, Ljava/io/File;->separator:Ljava/lang/String; const-string p1, "File.separator" invoke-static {p0, p1}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V move-object v6, p0 check-cast v6, Ljava/lang/CharSequence; const/16 v12, 0x7c const/4 v13, 0x0 const/4 v7, 0x0 const/4 v8, 0x0 const/4 v9, 0x0 const/4 v10, 0x0 const/4 v11, 0x0 invoke-static/range {v4 .. v13}, Lkotlin/collections/CollectionsKt;->joinTo$default(Ljava/lang/Iterable;Ljava/lang/Appendable;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;ILjava/lang/CharSequence;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Ljava/lang/Appendable; .line 193 :cond_a9 invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 return-object p0 .end method