FileUtils.smali
.class public final Lcom/blankj/utilcode/util/FileUtils;
.super Ljava/lang/Object;
.source "FileUtils.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;
}
.end annotation
# static fields
.field private static final HEX_DIGITS:[C
.field private static final LINE_SEP:Ljava/lang/String;
# direct methods
.method static constructor <clinit>()V
.registers 1
.line 41
const-string v0, "line.separator"
invoke-static {v0}, Ljava/lang/System;->getProperty(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
sput-object v0, Lcom/blankj/utilcode/util/FileUtils;->LINE_SEP:Ljava/lang/String;
.line 1408
const/16 v0, 0x10
new-array v0, v0, [C
fill-array-data v0, :array_12
sput-object v0, Lcom/blankj/utilcode/util/FileUtils;->HEX_DIGITS:[C
return-void
:array_12
.array-data 2
0x30s
0x31s
0x32s
0x33s
0x34s
0x35s
0x36s
0x37s
0x38s
0x39s
0x41s
0x42s
0x43s
0x44s
0x45s
0x46s
.end array-data
.end method
.method private constructor <init>()V
.registers 3
.line 43
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 44
new-instance v0, Ljava/lang/UnsupportedOperationException;
const-string/jumbo v1, "u can\'t instantiate me..."
invoke-direct {v0, v1}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method private static byte2FitMemorySize(J)Ljava/lang/String;
.registers 9
.param p0, "byteNum" # J
.line 1424
const-wide/16 v0, 0x0
cmp-long v2, p0, v0
if-gez v2, :cond_a
.line 1425
const-string/jumbo v0, "shouldn\'t be less than zero!"
return-object v0
.line 1426
:cond_a
const-wide/16 v0, 0x400
const/4 v2, 0x0
const/4 v3, 0x1
cmp-long v4, p0, v0
if-gez v4, :cond_26
.line 1427
invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale;
move-result-object v0
new-array v1, v3, [Ljava/lang/Object;
long-to-double v3, p0
invoke-static {v3, v4}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
move-result-object v3
aput-object v3, v1, v2
const-string v2, "%.3fB"
invoke-static {v0, v2, v1}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
return-object v0
.line 1428
:cond_26
const-wide/32 v0, 0x100000
cmp-long v4, p0, v0
if-gez v4, :cond_47
.line 1429
invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale;
move-result-object v0
new-array v1, v3, [Ljava/lang/Object;
long-to-double v3, p0
const-wide/high16 v5, 0x4090000000000000L # 1024.0
invoke-static {v3, v4}, Ljava/lang/Double;->isNaN(D)Z
div-double/2addr v3, v5
invoke-static {v3, v4}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
move-result-object v3
aput-object v3, v1, v2
const-string v2, "%.3fKB"
invoke-static {v0, v2, v1}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
return-object v0
.line 1430
:cond_47
const-wide/32 v0, 0x40000000
cmp-long v4, p0, v0
if-gez v4, :cond_68
.line 1431
invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale;
move-result-object v0
new-array v1, v3, [Ljava/lang/Object;
long-to-double v3, p0
const-wide/high16 v5, 0x4130000000000000L # 1048576.0
invoke-static {v3, v4}, Ljava/lang/Double;->isNaN(D)Z
div-double/2addr v3, v5
invoke-static {v3, v4}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
move-result-object v3
aput-object v3, v1, v2
const-string v2, "%.3fMB"
invoke-static {v0, v2, v1}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
return-object v0
.line 1433
:cond_68
invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale;
move-result-object v0
new-array v1, v3, [Ljava/lang/Object;
long-to-double v3, p0
const-wide/high16 v5, 0x41d0000000000000L # 1.073741824E9
invoke-static {v3, v4}, Ljava/lang/Double;->isNaN(D)Z
div-double/2addr v3, v5
invoke-static {v3, v4}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
move-result-object v3
aput-object v3, v1, v2
const-string v2, "%.3fGB"
invoke-static {v0, v2, v1}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method private static bytes2HexString([B)Ljava/lang/String;
.registers 8
.param p0, "bytes" # [B
.line 1412
const-string v0, ""
if-nez p0, :cond_5
return-object v0
.line 1413
:cond_5
array-length v1, p0
.line 1414
.local v1, "len":I
if-gtz v1, :cond_9
return-object v0
.line 1415
:cond_9
shl-int/lit8 v0, v1, 0x1
new-array v0, v0, [C
.line 1416
.local v0, "ret":[C
const/4 v2, 0x0
.local v2, "i":I
const/4 v3, 0x0
.local v3, "j":I
:goto_f
if-ge v2, v1, :cond_2c
.line 1417
add-int/lit8 v4, v3, 0x1
.end local v3 # "j":I
.local v4, "j":I
sget-object v5, Lcom/blankj/utilcode/util/FileUtils;->HEX_DIGITS:[C
aget-byte v6, p0, v2
shr-int/lit8 v6, v6, 0x4
and-int/lit8 v6, v6, 0xf
aget-char v6, v5, v6
aput-char v6, v0, v3
.line 1418
add-int/lit8 v3, v4, 0x1
.end local v4 # "j":I
.restart local v3 # "j":I
aget-byte v6, p0, v2
and-int/lit8 v6, v6, 0xf
aget-char v5, v5, v6
aput-char v5, v0, v4
.line 1416
add-int/lit8 v2, v2, 0x1
goto :goto_f
.line 1420
.end local v2 # "i":I
.end local v3 # "j":I
:cond_2c
new-instance v2, Ljava/lang/String;
invoke-direct {v2, v0}, Ljava/lang/String;-><init>([C)V
return-object v2
.end method
.method public static copy(Ljava/io/File;Ljava/io/File;)Z
.registers 3
.param p0, "src" # Ljava/io/File;
.param p1, "dest" # Ljava/io/File;
.line 278
const/4 v0, 0x0
invoke-static {p0, p1, v0}, Lcom/blankj/utilcode/util/FileUtils;->copy(Ljava/io/File;Ljava/io/File;Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;)Z
move-result v0
return v0
.end method
.method public static copy(Ljava/io/File;Ljava/io/File;Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;)Z
.registers 4
.param p0, "src" # Ljava/io/File;
.param p1, "dest" # Ljava/io/File;
.param p2, "listener" # Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;
.line 292
if-nez p0, :cond_4
const/4 v0, 0x0
return v0
.line 293
:cond_4
invoke-virtual {p0}, Ljava/io/File;->isDirectory()Z
move-result v0
if-eqz v0, :cond_f
.line 294
invoke-static {p0, p1, p2}, Lcom/blankj/utilcode/util/FileUtils;->copyDir(Ljava/io/File;Ljava/io/File;Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;)Z
move-result v0
return v0
.line 296
:cond_f
invoke-static {p0, p1, p2}, Lcom/blankj/utilcode/util/FileUtils;->copyFile(Ljava/io/File;Ljava/io/File;Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;)Z
move-result v0
return v0
.end method
.method public static copy(Ljava/lang/String;Ljava/lang/String;)Z
.registers 5
.param p0, "srcPath" # Ljava/lang/String;
.param p1, "destPath" # Ljava/lang/String;
.line 252
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
invoke-static {p1}, Lcom/blankj/utilcode/util/FileUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v1
const/4 v2, 0x0
invoke-static {v0, v1, v2}, Lcom/blankj/utilcode/util/FileUtils;->copy(Ljava/io/File;Ljava/io/File;Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;)Z
move-result v0
return v0
.end method
.method public static copy(Ljava/lang/String;Ljava/lang/String;Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;)Z
.registers 5
.param p0, "srcPath" # Ljava/lang/String;
.param p1, "destPath" # Ljava/lang/String;
.param p2, "listener" # Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;
.line 266
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
invoke-static {p1}, Lcom/blankj/utilcode/util/FileUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v1
invoke-static {v0, v1, p2}, Lcom/blankj/utilcode/util/FileUtils;->copy(Ljava/io/File;Ljava/io/File;Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;)Z
move-result v0
return v0
.end method
.method private static copyDir(Ljava/io/File;Ljava/io/File;Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;)Z
.registers 4
.param p0, "srcDir" # Ljava/io/File;
.param p1, "destDir" # Ljava/io/File;
.param p2, "listener" # Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;
.line 310
const/4 v0, 0x0
invoke-static {p0, p1, p2, v0}, Lcom/blankj/utilcode/util/FileUtils;->copyOrMoveDir(Ljava/io/File;Ljava/io/File;Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;Z)Z
move-result v0
return v0
.end method
.method private static copyFile(Ljava/io/File;Ljava/io/File;Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;)Z
.registers 4
.param p0, "srcFile" # Ljava/io/File;
.param p1, "destFile" # Ljava/io/File;
.param p2, "listener" # Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;
.line 324
const/4 v0, 0x0
invoke-static {p0, p1, p2, v0}, Lcom/blankj/utilcode/util/FileUtils;->copyOrMoveFile(Ljava/io/File;Ljava/io/File;Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;Z)Z
move-result v0
return v0
.end method
.method private static copyOrMoveDir(Ljava/io/File;Ljava/io/File;Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;Z)Z
.registers 14
.param p0, "srcDir" # Ljava/io/File;
.param p1, "destDir" # Ljava/io/File;
.param p2, "listener" # Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;
.param p3, "isMove" # Z
.line 415
const/4 v0, 0x0
if-eqz p0, :cond_96
if-nez p1, :cond_7
goto/16 :goto_96
.line 417
:cond_7
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {p0}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
sget-object v2, Ljava/io/File;->separator:Ljava/lang/String;
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
.line 418
.local v1, "srcPath":Ljava/lang/String;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {p1}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
sget-object v3, Ljava/io/File;->separator:Ljava/lang/String;
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
.line 419
.local v2, "destPath":Ljava/lang/String;
invoke-virtual {v2, v1}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v3
if-eqz v3, :cond_38
return v0
.line 420
:cond_38
invoke-virtual {p0}, Ljava/io/File;->exists()Z
move-result v3
if-eqz v3, :cond_95
invoke-virtual {p0}, Ljava/io/File;->isDirectory()Z
move-result v3
if-nez v3, :cond_45
goto :goto_95
.line 421
:cond_45
invoke-static {p1}, Lcom/blankj/utilcode/util/FileUtils;->createOrExistsDir(Ljava/io/File;)Z
move-result v3
if-nez v3, :cond_4c
return v0
.line 422
:cond_4c
invoke-virtual {p0}, Ljava/io/File;->listFiles()[Ljava/io/File;
move-result-object v3
.line 423
.local v3, "files":[Ljava/io/File;
array-length v4, v3
const/4 v5, 0x0
:goto_52
if-ge v5, v4, :cond_8b
aget-object v6, v3, v5
.line 424
.local v6, "file":Ljava/io/File;
new-instance v7, Ljava/io/File;
new-instance v8, Ljava/lang/StringBuilder;
invoke-direct {v8}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v8, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v6}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v9
invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v8
invoke-direct {v7, v8}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 425
.local v7, "oneDestFile":Ljava/io/File;
invoke-virtual {v6}, Ljava/io/File;->isFile()Z
move-result v8
if-eqz v8, :cond_7b
.line 426
invoke-static {v6, v7, p2, p3}, Lcom/blankj/utilcode/util/FileUtils;->copyOrMoveFile(Ljava/io/File;Ljava/io/File;Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;Z)Z
move-result v8
if-nez v8, :cond_88
return v0
.line 427
:cond_7b
invoke-virtual {v6}, Ljava/io/File;->isDirectory()Z
move-result v8
if-eqz v8, :cond_88
.line 428
invoke-static {v6, v7, p2, p3}, Lcom/blankj/utilcode/util/FileUtils;->copyOrMoveDir(Ljava/io/File;Ljava/io/File;Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;Z)Z
move-result v8
if-nez v8, :cond_88
return v0
.line 423
.end local v6 # "file":Ljava/io/File;
.end local v7 # "oneDestFile":Ljava/io/File;
:cond_88
add-int/lit8 v5, v5, 0x1
goto :goto_52
.line 431
:cond_8b
if-eqz p3, :cond_93
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->deleteDir(Ljava/io/File;)Z
move-result v4
if-eqz v4, :cond_94
:cond_93
const/4 v0, 0x1
:cond_94
return v0
.line 420
.end local v3 # "files":[Ljava/io/File;
:cond_95
:goto_95
return v0
.line 415
.end local v1 # "srcPath":Ljava/lang/String;
.end local v2 # "destPath":Ljava/lang/String;
:cond_96
:goto_96
return v0
.end method
.method private static copyOrMoveFile(Ljava/io/File;Ljava/io/File;Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;Z)Z
.registers 7
.param p0, "srcFile" # Ljava/io/File;
.param p1, "destFile" # Ljava/io/File;
.param p2, "listener" # Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;
.param p3, "isMove" # Z
.line 438
const/4 v0, 0x0
if-eqz p0, :cond_5a
if-nez p1, :cond_6
goto :goto_5a
.line 440
:cond_6
invoke-virtual {p0, p1}, Ljava/io/File;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_d
return v0
.line 442
:cond_d
invoke-virtual {p0}, Ljava/io/File;->exists()Z
move-result v1
if-eqz v1, :cond_59
invoke-virtual {p0}, Ljava/io/File;->isFile()Z
move-result v1
if-nez v1, :cond_1a
goto :goto_59
.line 443
:cond_1a
invoke-virtual {p1}, Ljava/io/File;->exists()Z
move-result v1
const/4 v2, 0x1
if-eqz v1, :cond_32
.line 444
if-eqz p2, :cond_2b
invoke-interface {p2, p0, p1}, Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;->onReplace(Ljava/io/File;Ljava/io/File;)Z
move-result v1
if-eqz v1, :cond_2a
goto :goto_2b
.line 449
:cond_2a
return v2
.line 445
:cond_2b
:goto_2b
invoke-virtual {p1}, Ljava/io/File;->delete()Z
move-result v1
if-nez v1, :cond_32
.line 446
return v0
.line 452
:cond_32
invoke-virtual {p1}, Ljava/io/File;->getParentFile()Ljava/io/File;
move-result-object v1
invoke-static {v1}, Lcom/blankj/utilcode/util/FileUtils;->createOrExistsDir(Ljava/io/File;)Z
move-result v1
if-nez v1, :cond_3d
return v0
.line 454
:cond_3d
:try_start_3d
new-instance v1, Ljava/io/FileInputStream;
invoke-direct {v1, p0}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
invoke-static {p1, v1}, Lcom/blankj/utilcode/util/FileUtils;->writeFileFromIS(Ljava/io/File;Ljava/io/InputStream;)Z
move-result v1
if-eqz v1, :cond_52
if-eqz p3, :cond_50
.line 455
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->deleteFile(Ljava/io/File;)Z
move-result v1
:try_end_4e
.catch Ljava/io/FileNotFoundException; {:try_start_3d .. :try_end_4e} :catch_54
if-eqz v1, :cond_52
:cond_50
const/4 v0, 0x1
goto :goto_53
:cond_52
nop
.line 454
:goto_53
return v0
.line 456
:catch_54
move-exception v1
.line 457
.local v1, "e":Ljava/io/FileNotFoundException;
invoke-virtual {v1}, Ljava/io/FileNotFoundException;->printStackTrace()V
.line 458
return v0
.line 442
.end local v1 # "e":Ljava/io/FileNotFoundException;
:cond_59
:goto_59
return v0
.line 438
:cond_5a
:goto_5a
return v0
.end method
.method public static createFileByDeleteOldFile(Ljava/io/File;)Z
.registers 3
.param p0, "file" # Ljava/io/File;
.line 231
const/4 v0, 0x0
if-nez p0, :cond_4
return v0
.line 233
:cond_4
invoke-virtual {p0}, Ljava/io/File;->exists()Z
move-result v1
if-eqz v1, :cond_11
invoke-virtual {p0}, Ljava/io/File;->delete()Z
move-result v1
if-nez v1, :cond_11
return v0
.line 234
:cond_11
invoke-virtual {p0}, Ljava/io/File;->getParentFile()Ljava/io/File;
move-result-object v1
invoke-static {v1}, Lcom/blankj/utilcode/util/FileUtils;->createOrExistsDir(Ljava/io/File;)Z
move-result v1
if-nez v1, :cond_1c
return v0
.line 236
:cond_1c
:try_start_1c
invoke-virtual {p0}, Ljava/io/File;->createNewFile()Z
move-result v0
:try_end_20
.catch Ljava/io/IOException; {:try_start_1c .. :try_end_20} :catch_21
return v0
.line 237
:catch_21
move-exception v1
.line 238
.local v1, "e":Ljava/io/IOException;
invoke-virtual {v1}, Ljava/io/IOException;->printStackTrace()V
.line 239
return v0
.end method
.method public static createFileByDeleteOldFile(Ljava/lang/String;)Z
.registers 2
.param p0, "filePath" # Ljava/lang/String;
.line 221
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/FileUtils;->createFileByDeleteOldFile(Ljava/io/File;)Z
move-result v0
return v0
.end method
.method public static createOrExistsDir(Ljava/io/File;)Z
.registers 2
.param p0, "file" # Ljava/io/File;
.line 183
if-eqz p0, :cond_17
invoke-virtual {p0}, Ljava/io/File;->exists()Z
move-result v0
if-eqz v0, :cond_f
invoke-virtual {p0}, Ljava/io/File;->isDirectory()Z
move-result v0
if-eqz v0, :cond_17
goto :goto_15
:cond_f
invoke-virtual {p0}, Ljava/io/File;->mkdirs()Z
move-result v0
if-eqz v0, :cond_17
:goto_15
const/4 v0, 0x1
goto :goto_18
:cond_17
const/4 v0, 0x0
:goto_18
return v0
.end method
.method public static createOrExistsDir(Ljava/lang/String;)Z
.registers 2
.param p0, "dirPath" # Ljava/lang/String;
.line 173
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/FileUtils;->createOrExistsDir(Ljava/io/File;)Z
move-result v0
return v0
.end method
.method public static createOrExistsFile(Ljava/io/File;)Z
.registers 3
.param p0, "file" # Ljava/io/File;
.line 203
const/4 v0, 0x0
if-nez p0, :cond_4
return v0
.line 204
:cond_4
invoke-virtual {p0}, Ljava/io/File;->exists()Z
move-result v1
if-eqz v1, :cond_f
invoke-virtual {p0}, Ljava/io/File;->isFile()Z
move-result v0
return v0
.line 205
:cond_f
invoke-virtual {p0}, Ljava/io/File;->getParentFile()Ljava/io/File;
move-result-object v1
invoke-static {v1}, Lcom/blankj/utilcode/util/FileUtils;->createOrExistsDir(Ljava/io/File;)Z
move-result v1
if-nez v1, :cond_1a
return v0
.line 207
:cond_1a
:try_start_1a
invoke-virtual {p0}, Ljava/io/File;->createNewFile()Z
move-result v0
:try_end_1e
.catch Ljava/io/IOException; {:try_start_1a .. :try_end_1e} :catch_1f
return v0
.line 208
:catch_1f
move-exception v1
.line 209
.local v1, "e":Ljava/io/IOException;
invoke-virtual {v1}, Ljava/io/IOException;->printStackTrace()V
.line 210
return v0
.end method
.method public static createOrExistsFile(Ljava/lang/String;)Z
.registers 2
.param p0, "filePath" # Ljava/lang/String;
.line 193
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/FileUtils;->createOrExistsFile(Ljava/io/File;)Z
move-result v0
return v0
.end method
.method public static delete(Ljava/io/File;)Z
.registers 2
.param p0, "file" # Ljava/io/File;
.line 479
if-nez p0, :cond_4
const/4 v0, 0x0
return v0
.line 480
:cond_4
invoke-virtual {p0}, Ljava/io/File;->isDirectory()Z
move-result v0
if-eqz v0, :cond_f
.line 481
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->deleteDir(Ljava/io/File;)Z
move-result v0
return v0
.line 483
:cond_f
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->deleteFile(Ljava/io/File;)Z
move-result v0
return v0
.end method
.method public static delete(Ljava/lang/String;)Z
.registers 2
.param p0, "filePath" # Ljava/lang/String;
.line 469
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/FileUtils;->delete(Ljava/io/File;)Z
move-result v0
return v0
.end method
.method public static deleteAllInDir(Ljava/io/File;)Z
.registers 2
.param p0, "dir" # Ljava/io/File;
.line 538
new-instance v0, Lcom/blankj/utilcode/util/FileUtils$1;
invoke-direct {v0}, Lcom/blankj/utilcode/util/FileUtils$1;-><init>()V
invoke-static {p0, v0}, Lcom/blankj/utilcode/util/FileUtils;->deleteFilesInDirWithFilter(Ljava/io/File;Ljava/io/FileFilter;)Z
move-result v0
return v0
.end method
.method public static deleteAllInDir(Ljava/lang/String;)Z
.registers 2
.param p0, "dirPath" # Ljava/lang/String;
.line 528
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/FileUtils;->deleteAllInDir(Ljava/io/File;)Z
move-result v0
return v0
.end method
.method private static deleteDir(Ljava/io/File;)Z
.registers 7
.param p0, "dir" # Ljava/io/File;
.line 493
const/4 v0, 0x0
if-nez p0, :cond_4
return v0
.line 495
:cond_4
invoke-virtual {p0}, Ljava/io/File;->exists()Z
move-result v1
if-nez v1, :cond_c
const/4 v0, 0x1
return v0
.line 497
:cond_c
invoke-virtual {p0}, Ljava/io/File;->isDirectory()Z
move-result v1
if-nez v1, :cond_13
return v0
.line 498
:cond_13
invoke-virtual {p0}, Ljava/io/File;->listFiles()[Ljava/io/File;
move-result-object v1
.line 499
.local v1, "files":[Ljava/io/File;
if-eqz v1, :cond_3f
array-length v2, v1
if-eqz v2, :cond_3f
.line 500
array-length v2, v1
const/4 v3, 0x0
:goto_1e
if-ge v3, v2, :cond_3f
aget-object v4, v1, v3
.line 501
.local v4, "file":Ljava/io/File;
invoke-virtual {v4}, Ljava/io/File;->isFile()Z
move-result v5
if-eqz v5, :cond_2f
.line 502
invoke-virtual {v4}, Ljava/io/File;->delete()Z
move-result v5
if-nez v5, :cond_3c
return v0
.line 503
:cond_2f
invoke-virtual {v4}, Ljava/io/File;->isDirectory()Z
move-result v5
if-eqz v5, :cond_3c
.line 504
invoke-static {v4}, Lcom/blankj/utilcode/util/FileUtils;->deleteDir(Ljava/io/File;)Z
move-result v5
if-nez v5, :cond_3c
return v0
.line 500
.end local v4 # "file":Ljava/io/File;
:cond_3c
add-int/lit8 v3, v3, 0x1
goto :goto_1e
.line 508
:cond_3f
invoke-virtual {p0}, Ljava/io/File;->delete()Z
move-result v0
return v0
.end method
.method private static deleteFile(Ljava/io/File;)Z
.registers 2
.param p0, "file" # Ljava/io/File;
.line 518
if-eqz p0, :cond_16
invoke-virtual {p0}, Ljava/io/File;->exists()Z
move-result v0
if-eqz v0, :cond_14
invoke-virtual {p0}, Ljava/io/File;->isFile()Z
move-result v0
if-eqz v0, :cond_16
invoke-virtual {p0}, Ljava/io/File;->delete()Z
move-result v0
if-eqz v0, :cond_16
:cond_14
const/4 v0, 0x1
goto :goto_17
:cond_16
const/4 v0, 0x0
:goto_17
return v0
.end method
.method public static deleteFilesInDir(Ljava/io/File;)Z
.registers 2
.param p0, "dir" # Ljava/io/File;
.line 563
new-instance v0, Lcom/blankj/utilcode/util/FileUtils$2;
invoke-direct {v0}, Lcom/blankj/utilcode/util/FileUtils$2;-><init>()V
invoke-static {p0, v0}, Lcom/blankj/utilcode/util/FileUtils;->deleteFilesInDirWithFilter(Ljava/io/File;Ljava/io/FileFilter;)Z
move-result v0
return v0
.end method
.method public static deleteFilesInDir(Ljava/lang/String;)Z
.registers 2
.param p0, "dirPath" # Ljava/lang/String;
.line 553
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/FileUtils;->deleteFilesInDir(Ljava/io/File;)Z
move-result v0
return v0
.end method
.method public static deleteFilesInDirWithFilter(Ljava/io/File;Ljava/io/FileFilter;)Z
.registers 9
.param p0, "dir" # Ljava/io/File;
.param p1, "filter" # Ljava/io/FileFilter;
.line 591
const/4 v0, 0x0
if-eqz p0, :cond_48
if-nez p1, :cond_6
goto :goto_48
.line 593
:cond_6
invoke-virtual {p0}, Ljava/io/File;->exists()Z
move-result v1
const/4 v2, 0x1
if-nez v1, :cond_e
return v2
.line 595
:cond_e
invoke-virtual {p0}, Ljava/io/File;->isDirectory()Z
move-result v1
if-nez v1, :cond_15
return v0
.line 596
:cond_15
invoke-virtual {p0}, Ljava/io/File;->listFiles()[Ljava/io/File;
move-result-object v1
.line 597
.local v1, "files":[Ljava/io/File;
if-eqz v1, :cond_47
array-length v3, v1
if-eqz v3, :cond_47
.line 598
array-length v3, v1
const/4 v4, 0x0
:goto_20
if-ge v4, v3, :cond_47
aget-object v5, v1, v4
.line 599
.local v5, "file":Ljava/io/File;
invoke-interface {p1, v5}, Ljava/io/FileFilter;->accept(Ljava/io/File;)Z
move-result v6
if-eqz v6, :cond_44
.line 600
invoke-virtual {v5}, Ljava/io/File;->isFile()Z
move-result v6
if-eqz v6, :cond_37
.line 601
invoke-virtual {v5}, Ljava/io/File;->delete()Z
move-result v6
if-nez v6, :cond_44
return v0
.line 602
:cond_37
invoke-virtual {v5}, Ljava/io/File;->isDirectory()Z
move-result v6
if-eqz v6, :cond_44
.line 603
invoke-static {v5}, Lcom/blankj/utilcode/util/FileUtils;->deleteDir(Ljava/io/File;)Z
move-result v6
if-nez v6, :cond_44
return v0
.line 598
.end local v5 # "file":Ljava/io/File;
:cond_44
add-int/lit8 v4, v4, 0x1
goto :goto_20
.line 608
:cond_47
return v2
.line 591
.end local v1 # "files":[Ljava/io/File;
:cond_48
:goto_48
return v0
.end method
.method public static deleteFilesInDirWithFilter(Ljava/lang/String;Ljava/io/FileFilter;)Z
.registers 3
.param p0, "dirPath" # Ljava/lang/String;
.param p1, "filter" # Ljava/io/FileFilter;
.line 580
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
invoke-static {v0, p1}, Lcom/blankj/utilcode/util/FileUtils;->deleteFilesInDirWithFilter(Ljava/io/File;Ljava/io/FileFilter;)Z
move-result v0
return v0
.end method
.method private static getDirLength(Ljava/io/File;)J
.registers 9
.param p0, "dir" # Ljava/io/File;
.line 1159
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->isDir(Ljava/io/File;)Z
move-result v0
if-nez v0, :cond_9
const-wide/16 v0, -0x1
return-wide v0
.line 1160
:cond_9
const-wide/16 v0, 0x0
.line 1161
.local v0, "len":J
invoke-virtual {p0}, Ljava/io/File;->listFiles()[Ljava/io/File;
move-result-object v2
.line 1162
.local v2, "files":[Ljava/io/File;
if-eqz v2, :cond_2e
array-length v3, v2
if-eqz v3, :cond_2e
.line 1163
array-length v3, v2
const/4 v4, 0x0
:goto_16
if-ge v4, v3, :cond_2e
aget-object v5, v2, v4
.line 1164
.local v5, "file":Ljava/io/File;
invoke-virtual {v5}, Ljava/io/File;->isDirectory()Z
move-result v6
if-eqz v6, :cond_26
.line 1165
invoke-static {v5}, Lcom/blankj/utilcode/util/FileUtils;->getDirLength(Ljava/io/File;)J
move-result-wide v6
add-long/2addr v0, v6
goto :goto_2b
.line 1167
:cond_26
invoke-virtual {v5}, Ljava/io/File;->length()J
move-result-wide v6
add-long/2addr v0, v6
.line 1163
.end local v5 # "file":Ljava/io/File;
:goto_2b
add-int/lit8 v4, v4, 0x1
goto :goto_16
.line 1171
:cond_2e
return-wide v0
.end method
.method public static getDirName(Ljava/io/File;)Ljava/lang/String;
.registers 2
.param p0, "file" # Ljava/io/File;
.line 1280
if-nez p0, :cond_5
const-string v0, ""
return-object v0
.line 1281
:cond_5
invoke-virtual {p0}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/FileUtils;->getDirName(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static getDirName(Ljava/lang/String;)Ljava/lang/String;
.registers 4
.param p0, "filePath" # Ljava/lang/String;
.line 1291
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->isSpace(Ljava/lang/String;)Z
move-result v0
const-string v1, ""
if-eqz v0, :cond_9
return-object v1
.line 1292
:cond_9
sget-object v0, Ljava/io/File;->separator:Ljava/lang/String;
invoke-virtual {p0, v0}, Ljava/lang/String;->lastIndexOf(Ljava/lang/String;)I
move-result v0
.line 1293
.local v0, "lastSep":I
const/4 v2, -0x1
if-ne v0, v2, :cond_13
goto :goto_1a
:cond_13
const/4 v1, 0x0
add-int/lit8 v2, v0, 0x1
invoke-virtual {p0, v1, v2}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v1
:goto_1a
return-object v1
.end method
.method private static getDirSize(Ljava/io/File;)Ljava/lang/String;
.registers 6
.param p0, "dir" # Ljava/io/File;
.line 1113
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getDirLength(Ljava/io/File;)J
move-result-wide v0
.line 1114
.local v0, "len":J
const-wide/16 v2, -0x1
cmp-long v4, v0, v2
if-nez v4, :cond_d
const-string v2, ""
goto :goto_11
:cond_d
invoke-static {v0, v1}, Lcom/blankj/utilcode/util/FileUtils;->byte2FitMemorySize(J)Ljava/lang/String;
move-result-object v2
:goto_11
return-object v2
.end method
.method public static getFileByPath(Ljava/lang/String;)Ljava/io/File;
.registers 2
.param p0, "filePath" # Ljava/lang/String;
.line 54
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->isSpace(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_8
const/4 v0, 0x0
goto :goto_d
:cond_8
new-instance v0, Ljava/io/File;
invoke-direct {v0, p0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
:goto_d
return-object v0
.end method
.method public static getFileCharsetSimple(Ljava/io/File;)Ljava/lang/String;
.registers 5
.param p0, "file" # Ljava/io/File;
.line 891
if-nez p0, :cond_5
const-string v0, ""
return-object v0
.line 892
:cond_5
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->isUtf8(Ljava/io/File;)Z
move-result v0
if-eqz v0, :cond_e
const-string v0, "UTF-8"
return-object v0
.line 893
:cond_e
const/4 v0, 0x0
.line 894
.local v0, "p":I
const/4 v1, 0x0
.line 896
.local v1, "is":Ljava/io/InputStream;
:try_start_10
new-instance v2, Ljava/io/BufferedInputStream;
new-instance v3, Ljava/io/FileInputStream;
invoke-direct {v3, p0}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
invoke-direct {v2, v3}, Ljava/io/BufferedInputStream;-><init>(Ljava/io/InputStream;)V
move-object v1, v2
.line 897
invoke-virtual {v1}, Ljava/io/InputStream;->read()I
move-result v2
shl-int/lit8 v2, v2, 0x8
invoke-virtual {v1}, Ljava/io/InputStream;->read()I
move-result v3
:try_end_25
.catch Ljava/io/IOException; {:try_start_10 .. :try_end_25} :catch_33
.catchall {:try_start_10 .. :try_end_25} :catchall_31
add-int v0, v2, v3
.line 902
nop
.line 903
:try_start_28
invoke-virtual {v1}, Ljava/io/InputStream;->close()V
:try_end_2b
.catch Ljava/io/IOException; {:try_start_28 .. :try_end_2b} :catch_2c
.line 907
:cond_2b
:goto_2b
goto :goto_3d
.line 905
:catch_2c
move-exception v2
.line 906
.local v2, "e":Ljava/io/IOException;
invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V
.line 908
.end local v2 # "e":Ljava/io/IOException;
goto :goto_3d
.line 901
:catchall_31
move-exception v2
goto :goto_50
.line 898
:catch_33
move-exception v2
.line 899
.restart local v2 # "e":Ljava/io/IOException;
:try_start_34
invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V
:try_end_37
.catchall {:try_start_34 .. :try_end_37} :catchall_31
.line 902
.end local v2 # "e":Ljava/io/IOException;
if-eqz v1, :cond_2b
.line 903
:try_start_39
invoke-virtual {v1}, Ljava/io/InputStream;->close()V
:try_end_3c
.catch Ljava/io/IOException; {:try_start_39 .. :try_end_3c} :catch_2c
goto :goto_2b
.line 909
:goto_3d
const v2, 0xfeff
if-eq v0, v2, :cond_4d
const v2, 0xfffe
if-eq v0, v2, :cond_4a
.line 915
const-string v2, "GBK"
return-object v2
.line 911
:cond_4a
const-string v2, "Unicode"
return-object v2
.line 913
:cond_4d
const-string v2, "UTF-16BE"
return-object v2
.line 902
:goto_50
if-eqz v1, :cond_5b
.line 903
:try_start_52
invoke-virtual {v1}, Ljava/io/InputStream;->close()V
:try_end_55
.catch Ljava/io/IOException; {:try_start_52 .. :try_end_55} :catch_56
goto :goto_5b
.line 905
:catch_56
move-exception v3
.line 906
.local v3, "e":Ljava/io/IOException;
invoke-virtual {v3}, Ljava/io/IOException;->printStackTrace()V
goto :goto_5c
.line 907
.end local v3 # "e":Ljava/io/IOException;
:cond_5b
:goto_5b
nop
.line 908
:goto_5c
goto :goto_5e
:goto_5d
throw v2
:goto_5e
goto :goto_5d
.end method
.method public static getFileCharsetSimple(Ljava/lang/String;)Ljava/lang/String;
.registers 2
.param p0, "filePath" # Ljava/lang/String;
.line 881
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/FileUtils;->getFileCharsetSimple(Ljava/io/File;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static getFileExtension(Ljava/io/File;)Ljava/lang/String;
.registers 2
.param p0, "file" # Ljava/io/File;
.line 1356
if-nez p0, :cond_5
const-string v0, ""
return-object v0
.line 1357
:cond_5
invoke-virtual {p0}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/FileUtils;->getFileExtension(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static getFileExtension(Ljava/lang/String;)Ljava/lang/String;
.registers 5
.param p0, "filePath" # Ljava/lang/String;
.line 1367
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->isSpace(Ljava/lang/String;)Z
move-result v0
const-string v1, ""
if-eqz v0, :cond_9
return-object v1
.line 1368
:cond_9
const/16 v0, 0x2e
invoke-virtual {p0, v0}, Ljava/lang/String;->lastIndexOf(I)I
move-result v0
.line 1369
.local v0, "lastPoi":I
sget-object v2, Ljava/io/File;->separator:Ljava/lang/String;
invoke-virtual {p0, v2}, Ljava/lang/String;->lastIndexOf(Ljava/lang/String;)I
move-result v2
.line 1370
.local v2, "lastSep":I
const/4 v3, -0x1
if-eq v0, v3, :cond_22
if-lt v2, v0, :cond_1b
goto :goto_22
.line 1371
:cond_1b
add-int/lit8 v1, v0, 0x1
invoke-virtual {p0, v1}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v1
return-object v1
.line 1370
:cond_22
:goto_22
return-object v1
.end method
.method public static getFileLastModified(Ljava/io/File;)J
.registers 3
.param p0, "file" # Ljava/io/File;
.line 870
if-nez p0, :cond_5
const-wide/16 v0, -0x1
return-wide v0
.line 871
:cond_5
invoke-virtual {p0}, Ljava/io/File;->lastModified()J
move-result-wide v0
return-wide v0
.end method
.method public static getFileLastModified(Ljava/lang/String;)J
.registers 3
.param p0, "filePath" # Ljava/lang/String;
.line 860
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/FileUtils;->getFileLastModified(Ljava/io/File;)J
move-result-wide v0
return-wide v0
.end method
.method private static getFileLength(Ljava/io/File;)J
.registers 3
.param p0, "file" # Ljava/io/File;
.line 1205
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->isFile(Ljava/io/File;)Z
move-result v0
if-nez v0, :cond_9
const-wide/16 v0, -0x1
return-wide v0
.line 1206
:cond_9
invoke-virtual {p0}, Ljava/io/File;->length()J
move-result-wide v0
return-wide v0
.end method
.method public static getFileLength(Ljava/lang/String;)J
.registers 5
.param p0, "filePath" # Ljava/lang/String;
.line 1181
const-string v0, "[a-zA-z]+://[^\\s]*"
invoke-virtual {p0, v0}, Ljava/lang/String;->matches(Ljava/lang/String;)Z
move-result v0
.line 1182
.local v0, "isURL":Z
if-eqz v0, :cond_32
.line 1184
:try_start_8
new-instance v1, Ljava/net/URL;
invoke-direct {v1, p0}, Ljava/net/URL;-><init>(Ljava/lang/String;)V
invoke-virtual {v1}, Ljava/net/URL;->openConnection()Ljava/net/URLConnection;
move-result-object v1
check-cast v1, Ljavax/net/ssl/HttpsURLConnection;
.line 1185
.local v1, "conn":Ljavax/net/ssl/HttpsURLConnection;
const-string v2, "Accept-Encoding"
const-string v3, "identity"
invoke-virtual {v1, v2, v3}, Ljavax/net/ssl/HttpsURLConnection;->setRequestProperty(Ljava/lang/String;Ljava/lang/String;)V
.line 1186
invoke-virtual {v1}, Ljavax/net/ssl/HttpsURLConnection;->connect()V
.line 1187
invoke-virtual {v1}, Ljavax/net/ssl/HttpsURLConnection;->getResponseCode()I
move-result v2
const/16 v3, 0xc8
if-ne v2, v3, :cond_2b
.line 1188
invoke-virtual {v1}, Ljavax/net/ssl/HttpsURLConnection;->getContentLength()I
move-result v2
:try_end_29
.catch Ljava/io/IOException; {:try_start_8 .. :try_end_29} :catch_2e
int-to-long v2, v2
return-wide v2
.line 1190
:cond_2b
const-wide/16 v2, -0x1
return-wide v2
.line 1191
.end local v1 # "conn":Ljavax/net/ssl/HttpsURLConnection;
:catch_2e
move-exception v1
.line 1192
.local v1, "e":Ljava/io/IOException;
invoke-virtual {v1}, Ljava/io/IOException;->printStackTrace()V
.line 1195
.end local v1 # "e":Ljava/io/IOException;
:cond_32
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v1
invoke-static {v1}, Lcom/blankj/utilcode/util/FileUtils;->getFileLength(Ljava/io/File;)J
move-result-wide v1
return-wide v1
.end method
.method public static getFileLines(Ljava/io/File;)I
.registers 11
.param p0, "file" # Ljava/io/File;
.line 1049
const/4 v0, 0x1
.line 1050
.local v0, "count":I
const/4 v1, 0x0
.line 1052
.local v1, "is":Ljava/io/InputStream;
:try_start_2
new-instance v2, Ljava/io/BufferedInputStream;
new-instance v3, Ljava/io/FileInputStream;
invoke-direct {v3, p0}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
invoke-direct {v2, v3}, Ljava/io/BufferedInputStream;-><init>(Ljava/io/InputStream;)V
move-object v1, v2
.line 1053
const/16 v2, 0x400
new-array v3, v2, [B
.line 1055
.local v3, "buffer":[B
sget-object v4, Lcom/blankj/utilcode/util/FileUtils;->LINE_SEP:Ljava/lang/String;
const-string v5, "\n"
invoke-virtual {v4, v5}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
move-result v4
const/4 v5, -0x1
const/4 v6, 0x0
if-eqz v4, :cond_33
.line 1056
:goto_1d
invoke-virtual {v1, v3, v6, v2}, Ljava/io/InputStream;->read([BII)I
move-result v4
move v7, v4
.local v7, "readChars":I
if-eq v4, v5, :cond_49
.line 1057
const/4 v4, 0x0
.local v4, "i":I
:goto_25
if-ge v4, v7, :cond_32
.line 1058
aget-byte v8, v3, v4
const/16 v9, 0xa
if-ne v8, v9, :cond_2f
add-int/lit8 v0, v0, 0x1
.line 1057
:cond_2f
add-int/lit8 v4, v4, 0x1
goto :goto_25
.end local v4 # "i":I
:cond_32
goto :goto_1d
.line 1062
.end local v7 # "readChars":I
:cond_33
:goto_33
invoke-virtual {v1, v3, v6, v2}, Ljava/io/InputStream;->read([BII)I
move-result v4
move v7, v4
.restart local v7 # "readChars":I
if-eq v4, v5, :cond_49
.line 1063
const/4 v4, 0x0
.restart local v4 # "i":I
:goto_3b
if-ge v4, v7, :cond_48
.line 1064
aget-byte v8, v3, v4
:try_end_3f
.catch Ljava/io/IOException; {:try_start_2 .. :try_end_3f} :catch_55
.catchall {:try_start_2 .. :try_end_3f} :catchall_53
const/16 v9, 0xd
if-ne v8, v9, :cond_45
add-int/lit8 v0, v0, 0x1
.line 1063
:cond_45
add-int/lit8 v4, v4, 0x1
goto :goto_3b
.end local v4 # "i":I
:cond_48
goto :goto_33
.line 1072
.end local v3 # "buffer":[B
.end local v7 # "readChars":I
:cond_49
nop
.line 1073
:try_start_4a
invoke-virtual {v1}, Ljava/io/InputStream;->close()V
:try_end_4d
.catch Ljava/io/IOException; {:try_start_4a .. :try_end_4d} :catch_4e
.line 1077
:cond_4d
:goto_4d
goto :goto_5f
.line 1075
:catch_4e
move-exception v2
.line 1076
.local v2, "e":Ljava/io/IOException;
invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V
.line 1078
.end local v2 # "e":Ljava/io/IOException;
goto :goto_5f
.line 1071
:catchall_53
move-exception v2
goto :goto_60
.line 1068
:catch_55
move-exception v2
.line 1069
.restart local v2 # "e":Ljava/io/IOException;
:try_start_56
invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V
:try_end_59
.catchall {:try_start_56 .. :try_end_59} :catchall_53
.line 1072
.end local v2 # "e":Ljava/io/IOException;
if-eqz v1, :cond_4d
.line 1073
:try_start_5b
invoke-virtual {v1}, Ljava/io/InputStream;->close()V
:try_end_5e
.catch Ljava/io/IOException; {:try_start_5b .. :try_end_5e} :catch_4e
goto :goto_4d
.line 1079
:goto_5f
return v0
.line 1072
:goto_60
if-eqz v1, :cond_6b
.line 1073
:try_start_62
invoke-virtual {v1}, Ljava/io/InputStream;->close()V
:try_end_65
.catch Ljava/io/IOException; {:try_start_62 .. :try_end_65} :catch_66
goto :goto_6b
.line 1075
:catch_66
move-exception v3
.line 1076
.local v3, "e":Ljava/io/IOException;
invoke-virtual {v3}, Ljava/io/IOException;->printStackTrace()V
goto :goto_6c
.line 1077
.end local v3 # "e":Ljava/io/IOException;
:cond_6b
:goto_6b
nop
.line 1078
:goto_6c
goto :goto_6e
:goto_6d
throw v2
:goto_6e
goto :goto_6d
.end method
.method public static getFileLines(Ljava/lang/String;)I
.registers 2
.param p0, "filePath" # Ljava/lang/String;
.line 1039
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/FileUtils;->getFileLines(Ljava/io/File;)I
move-result v0
return v0
.end method
.method public static getFileMD5(Ljava/io/File;)[B
.registers 7
.param p0, "file" # Ljava/io/File;
.line 1247
const/4 v0, 0x0
if-nez p0, :cond_4
return-object v0
.line 1248
:cond_4
const/4 v1, 0x0
.line 1250
.local v1, "dis":Ljava/security/DigestInputStream;
:try_start_5
new-instance v2, Ljava/io/FileInputStream;
invoke-direct {v2, p0}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
.line 1251
.local v2, "fis":Ljava/io/FileInputStream;
const-string v3, "MD5"
invoke-static {v3}, Ljava/security/MessageDigest;->getInstance(Ljava/lang/String;)Ljava/security/MessageDigest;
move-result-object v3
.line 1252
.local v3, "md":Ljava/security/MessageDigest;
new-instance v4, Ljava/security/DigestInputStream;
invoke-direct {v4, v2, v3}, Ljava/security/DigestInputStream;-><init>(Ljava/io/InputStream;Ljava/security/MessageDigest;)V
move-object v1, v4
.line 1253
const/high16 v4, 0x40000
new-array v4, v4, [B
.line 1255
.local v4, "buffer":[B
:cond_1a
invoke-virtual {v1, v4}, Ljava/security/DigestInputStream;->read([B)I
move-result v5
if-gtz v5, :cond_1a
.line 1257
invoke-virtual {v1}, Ljava/security/DigestInputStream;->getMessageDigest()Ljava/security/MessageDigest;
move-result-object v5
move-object v3, v5
.line 1258
invoke-virtual {v3}, Ljava/security/MessageDigest;->digest()[B
move-result-object v0
:try_end_29
.catch Ljava/security/NoSuchAlgorithmException; {:try_start_5 .. :try_end_29} :catch_37
.catch Ljava/io/IOException; {:try_start_5 .. :try_end_29} :catch_35
.catchall {:try_start_5 .. :try_end_29} :catchall_33
.line 1263
nop
.line 1264
:try_start_2a
invoke-virtual {v1}, Ljava/security/DigestInputStream;->close()V
:try_end_2d
.catch Ljava/io/IOException; {:try_start_2a .. :try_end_2d} :catch_2e
.line 1268
goto :goto_32
.line 1266
:catch_2e
move-exception v5
.line 1267
.local v5, "e":Ljava/io/IOException;
invoke-virtual {v5}, Ljava/io/IOException;->printStackTrace()V
.line 1258
.end local v5 # "e":Ljava/io/IOException;
:goto_32
return-object v0
.line 1262
.end local v2 # "fis":Ljava/io/FileInputStream;
.end local v3 # "md":Ljava/security/MessageDigest;
.end local v4 # "buffer":[B
:catchall_33
move-exception v0
goto :goto_48
.line 1259
:catch_35
move-exception v2
goto :goto_38
:catch_37
move-exception v2
.line 1260
.local v2, "e":Ljava/lang/Exception;
:goto_38
:try_start_38
invoke-virtual {v2}, Ljava/lang/Exception;->printStackTrace()V
:try_end_3b
.catchall {:try_start_38 .. :try_end_3b} :catchall_33
.line 1263
.end local v2 # "e":Ljava/lang/Exception;
if-eqz v1, :cond_46
.line 1264
:try_start_3d
invoke-virtual {v1}, Ljava/security/DigestInputStream;->close()V
:try_end_40
.catch Ljava/io/IOException; {:try_start_3d .. :try_end_40} :catch_41
goto :goto_46
.line 1266
:catch_41
move-exception v2
.line 1267
.local v2, "e":Ljava/io/IOException;
invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V
.line 1269
.end local v2 # "e":Ljava/io/IOException;
goto :goto_47
.line 1268
:cond_46
:goto_46
nop
.line 1270
:goto_47
return-object v0
.line 1263
:goto_48
if-eqz v1, :cond_53
.line 1264
:try_start_4a
invoke-virtual {v1}, Ljava/security/DigestInputStream;->close()V
:try_end_4d
.catch Ljava/io/IOException; {:try_start_4a .. :try_end_4d} :catch_4e
goto :goto_53
.line 1266
:catch_4e
move-exception v2
.line 1267
.restart local v2 # "e":Ljava/io/IOException;
invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V
goto :goto_54
.line 1268
.end local v2 # "e":Ljava/io/IOException;
:cond_53
:goto_53
nop
.line 1269
:goto_54
goto :goto_56
:goto_55
throw v0
:goto_56
goto :goto_55
.end method
.method public static getFileMD5(Ljava/lang/String;)[B
.registers 2
.param p0, "filePath" # Ljava/lang/String;
.line 1237
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/FileUtils;->getFileMD5(Ljava/io/File;)[B
move-result-object v0
return-object v0
.end method
.method public static getFileMD5ToString(Ljava/io/File;)Ljava/lang/String;
.registers 2
.param p0, "file" # Ljava/io/File;
.line 1227
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getFileMD5(Ljava/io/File;)[B
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/FileUtils;->bytes2HexString([B)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static getFileMD5ToString(Ljava/lang/String;)Ljava/lang/String;
.registers 3
.param p0, "filePath" # Ljava/lang/String;
.line 1216
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->isSpace(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_8
const/4 v0, 0x0
goto :goto_d
:cond_8
new-instance v0, Ljava/io/File;
invoke-direct {v0, p0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 1217
.local v0, "file":Ljava/io/File;
:goto_d
invoke-static {v0}, Lcom/blankj/utilcode/util/FileUtils;->getFileMD5ToString(Ljava/io/File;)Ljava/lang/String;
move-result-object v1
return-object v1
.end method
.method public static getFileName(Ljava/io/File;)Ljava/lang/String;
.registers 2
.param p0, "file" # Ljava/io/File;
.line 1303
if-nez p0, :cond_5
const-string v0, ""
return-object v0
.line 1304
:cond_5
invoke-virtual {p0}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/FileUtils;->getFileName(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static getFileName(Ljava/lang/String;)Ljava/lang/String;
.registers 3
.param p0, "filePath" # Ljava/lang/String;
.line 1314
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->isSpace(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_9
const-string v0, ""
return-object v0
.line 1315
:cond_9
sget-object v0, Ljava/io/File;->separator:Ljava/lang/String;
invoke-virtual {p0, v0}, Ljava/lang/String;->lastIndexOf(Ljava/lang/String;)I
move-result v0
.line 1316
.local v0, "lastSep":I
const/4 v1, -0x1
if-ne v0, v1, :cond_14
move-object v1, p0
goto :goto_1a
:cond_14
add-int/lit8 v1, v0, 0x1
invoke-virtual {p0, v1}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v1
:goto_1a
return-object v1
.end method
.method public static getFileNameNoExtension(Ljava/io/File;)Ljava/lang/String;
.registers 2
.param p0, "file" # Ljava/io/File;
.line 1326
if-nez p0, :cond_5
const-string v0, ""
return-object v0
.line 1327
:cond_5
invoke-virtual {p0}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/FileUtils;->getFileNameNoExtension(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static getFileNameNoExtension(Ljava/lang/String;)Ljava/lang/String;
.registers 4
.param p0, "filePath" # Ljava/lang/String;
.line 1337
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->isSpace(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_9
const-string v0, ""
return-object v0
.line 1338
:cond_9
const/16 v0, 0x2e
invoke-virtual {p0, v0}, Ljava/lang/String;->lastIndexOf(I)I
move-result v0
.line 1339
.local v0, "lastPoi":I
sget-object v1, Ljava/io/File;->separator:Ljava/lang/String;
invoke-virtual {p0, v1}, Ljava/lang/String;->lastIndexOf(Ljava/lang/String;)I
move-result v1
.line 1340
.local v1, "lastSep":I
const/4 v2, -0x1
if-ne v1, v2, :cond_22
.line 1341
if-ne v0, v2, :cond_1c
move-object v2, p0
goto :goto_21
:cond_1c
const/4 v2, 0x0
invoke-virtual {p0, v2, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v2
:goto_21
return-object v2
.line 1343
:cond_22
if-eq v0, v2, :cond_2e
if-le v1, v0, :cond_27
goto :goto_2e
.line 1346
:cond_27
add-int/lit8 v2, v1, 0x1
invoke-virtual {p0, v2, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v2
return-object v2
.line 1344
:cond_2e
:goto_2e
add-int/lit8 v2, v1, 0x1
invoke-virtual {p0, v2}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v2
return-object v2
.end method
.method private static getFileSize(Ljava/io/File;)Ljava/lang/String;
.registers 6
.param p0, "file" # Ljava/io/File;
.line 1124
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getFileLength(Ljava/io/File;)J
move-result-wide v0
.line 1125
.local v0, "len":J
const-wide/16 v2, -0x1
cmp-long v4, v0, v2
if-nez v4, :cond_d
const-string v2, ""
goto :goto_11
:cond_d
invoke-static {v0, v1}, Lcom/blankj/utilcode/util/FileUtils;->byte2FitMemorySize(J)Ljava/lang/String;
move-result-object v2
:goto_11
return-object v2
.end method
.method public static getLength(Ljava/io/File;)J
.registers 3
.param p0, "file" # Ljava/io/File;
.line 1145
if-nez p0, :cond_5
const-wide/16 v0, 0x0
return-wide v0
.line 1146
:cond_5
invoke-virtual {p0}, Ljava/io/File;->isDirectory()Z
move-result v0
if-eqz v0, :cond_10
.line 1147
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getDirLength(Ljava/io/File;)J
move-result-wide v0
return-wide v0
.line 1149
:cond_10
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getFileLength(Ljava/io/File;)J
move-result-wide v0
return-wide v0
.end method
.method public static getLength(Ljava/lang/String;)J
.registers 3
.param p0, "filePath" # Ljava/lang/String;
.line 1135
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/FileUtils;->getLength(Ljava/io/File;)J
move-result-wide v0
return-wide v0
.end method
.method public static getSize(Ljava/io/File;)Ljava/lang/String;
.registers 2
.param p0, "file" # Ljava/io/File;
.line 1099
if-nez p0, :cond_5
const-string v0, ""
return-object v0
.line 1100
:cond_5
invoke-virtual {p0}, Ljava/io/File;->isDirectory()Z
move-result v0
if-eqz v0, :cond_10
.line 1101
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getDirSize(Ljava/io/File;)Ljava/lang/String;
move-result-object v0
return-object v0
.line 1103
:cond_10
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getFileSize(Ljava/io/File;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static getSize(Ljava/lang/String;)Ljava/lang/String;
.registers 2
.param p0, "filePath" # Ljava/lang/String;
.line 1089
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/FileUtils;->getSize(Ljava/io/File;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static isDir(Ljava/io/File;)Z
.registers 2
.param p0, "file" # Ljava/io/File;
.line 143
if-eqz p0, :cond_10
invoke-virtual {p0}, Ljava/io/File;->exists()Z
move-result v0
if-eqz v0, :cond_10
invoke-virtual {p0}, Ljava/io/File;->isDirectory()Z
move-result v0
if-eqz v0, :cond_10
const/4 v0, 0x1
goto :goto_11
:cond_10
const/4 v0, 0x0
:goto_11
return v0
.end method
.method public static isDir(Ljava/lang/String;)Z
.registers 2
.param p0, "dirPath" # Ljava/lang/String;
.line 133
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/FileUtils;->isDir(Ljava/io/File;)Z
move-result v0
return v0
.end method
.method public static isFile(Ljava/io/File;)Z
.registers 2
.param p0, "file" # Ljava/io/File;
.line 163
if-eqz p0, :cond_10
invoke-virtual {p0}, Ljava/io/File;->exists()Z
move-result v0
if-eqz v0, :cond_10
invoke-virtual {p0}, Ljava/io/File;->isFile()Z
move-result v0
if-eqz v0, :cond_10
const/4 v0, 0x1
goto :goto_11
:cond_10
const/4 v0, 0x0
:goto_11
return v0
.end method
.method public static isFile(Ljava/lang/String;)Z
.registers 2
.param p0, "filePath" # Ljava/lang/String;
.line 153
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/FileUtils;->isFile(Ljava/io/File;)Z
move-result v0
return v0
.end method
.method public static isFileExists(Ljava/io/File;)Z
.registers 2
.param p0, "file" # Ljava/io/File;
.line 90
if-eqz p0, :cond_a
invoke-virtual {p0}, Ljava/io/File;->exists()Z
move-result v0
if-eqz v0, :cond_a
const/4 v0, 0x1
goto :goto_b
:cond_a
const/4 v0, 0x0
:goto_b
return v0
.end method
.method public static isFileExists(Ljava/lang/String;)Z
.registers 5
.param p0, "filePath" # Ljava/lang/String;
.line 64
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x1d
if-ge v0, v1, :cond_f
.line 65
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/FileUtils;->isFileExists(Ljava/io/File;)Z
move-result v0
return v0
.line 68
:cond_f
const/4 v0, 0x0
:try_start_10
invoke-static {p0}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri;
move-result-object v1
.line 69
.local v1, "uri":Landroid/net/Uri;
invoke-static {}, Lcom/blankj/utilcode/util/Utils;->getApp()Landroid/app/Application;
move-result-object v2
invoke-virtual {v2}, Landroid/app/Application;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v2
.line 70
.local v2, "cr":Landroid/content/ContentResolver;
const-string v3, "r"
invoke-virtual {v2, v1, v3}, Landroid/content/ContentResolver;->openAssetFileDescriptor(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;
move-result-object v3
:try_end_22
.catch Ljava/io/FileNotFoundException; {:try_start_10 .. :try_end_22} :catch_2d
.line 71
.local v3, "afd":Landroid/content/res/AssetFileDescriptor;
if-nez v3, :cond_25
return v0
.line 73
:cond_25
:try_start_25
invoke-virtual {v3}, Landroid/content/res/AssetFileDescriptor;->close()V
:try_end_28
.catch Ljava/io/IOException; {:try_start_25 .. :try_end_28} :catch_29
.catch Ljava/io/FileNotFoundException; {:try_start_25 .. :try_end_28} :catch_2d
.line 75
goto :goto_2a
.line 74
:catch_29
move-exception v0
.line 78
.end local v1 # "uri":Landroid/net/Uri;
.end local v2 # "cr":Landroid/content/ContentResolver;
.end local v3 # "afd":Landroid/content/res/AssetFileDescriptor;
:goto_2a
nop
.line 79
const/4 v0, 0x1
return v0
.line 76
:catch_2d
move-exception v1
.line 77
.local v1, "e":Ljava/io/FileNotFoundException;
return v0
.end method
.method private static isSpace(Ljava/lang/String;)Z
.registers 5
.param p0, "s" # Ljava/lang/String;
.line 1438
const/4 v0, 0x1
if-nez p0, :cond_4
return v0
.line 1439
:cond_4
const/4 v1, 0x0
.local v1, "i":I
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v2
.local v2, "len":I
:goto_9
if-ge v1, v2, :cond_1a
.line 1440
invoke-virtual {p0, v1}, Ljava/lang/String;->charAt(I)C
move-result v3
invoke-static {v3}, Ljava/lang/Character;->isWhitespace(C)Z
move-result v3
if-nez v3, :cond_17
.line 1441
const/4 v0, 0x0
return v0
.line 1439
:cond_17
add-int/lit8 v1, v1, 0x1
goto :goto_9
.line 1444
.end local v1 # "i":I
.end local v2 # "len":I
:cond_1a
return v0
.end method
.method private static isUtf8([B)I
.registers 12
.param p0, "raw" # [B
.line 973
const/4 v0, 0x0
.local v0, "utf8":I
const/4 v1, 0x0
.line 974
.local v1, "ascii":I
array-length v2, p0
const/16 v3, 0x64
const/4 v4, 0x0
const/4 v5, 0x3
if-le v2, v5, :cond_1e
.line 975
aget-byte v2, p0, v4
const/16 v5, -0x11
if-ne v2, v5, :cond_1e
const/4 v2, 0x1
aget-byte v2, p0, v2
const/16 v5, -0x45
if-ne v2, v5, :cond_1e
const/4 v2, 0x2
aget-byte v2, p0, v2
const/16 v5, -0x41
if-ne v2, v5, :cond_1e
.line 976
return v3
.line 979
:cond_1e
array-length v2, p0
.line 980
.local v2, "len":I
const/4 v5, 0x0
.line 981
.local v5, "child":I
const/4 v6, 0x0
.local v6, "i":I
:goto_21
if-ge v6, v2, :cond_9b
.line 983
aget-byte v7, p0, v6
const/4 v8, -0x1
and-int/2addr v7, v8
if-eq v7, v8, :cond_9a
aget-byte v7, p0, v6
const/4 v8, -0x2
and-int/2addr v7, v8
if-ne v7, v8, :cond_31
goto/16 :goto_9a
.line 986
:cond_31
if-nez v5, :cond_63
.line 988
aget-byte v7, p0, v6
and-int/lit8 v7, v7, 0x7f
aget-byte v8, p0, v6
if-ne v7, v8, :cond_42
aget-byte v7, p0, v6
if-eqz v7, :cond_42
.line 989
add-int/lit8 v1, v1, 0x1
goto :goto_60
.line 990
:cond_42
aget-byte v7, p0, v6
const/16 v8, -0x40
and-int/2addr v7, v8
if-ne v7, v8, :cond_60
.line 992
const/4 v7, 0x0
.local v7, "bit":I
:goto_4a
const/16 v8, 0x8
if-ge v7, v8, :cond_5e
.line 993
const/16 v8, 0x80
shr-int v9, v8, v7
int-to-byte v9, v9
aget-byte v10, p0, v6
and-int/2addr v9, v10
shr-int/2addr v8, v7
int-to-byte v8, v8
if-ne v9, v8, :cond_5e
.line 994
move v5, v7
.line 992
add-int/lit8 v7, v7, 0x1
goto :goto_4a
.line 999
.end local v7 # "bit":I
:cond_5e
add-int/lit8 v0, v0, 0x1
.line 1001
:cond_60
:goto_60
add-int/lit8 v6, v6, 0x1
goto :goto_21
.line 1003
:cond_63
array-length v7, p0
sub-int/2addr v7, v6
if-le v7, v5, :cond_69
move v7, v5
goto :goto_6b
:cond_69
array-length v7, p0
sub-int/2addr v7, v6
:goto_6b
move v5, v7
.line 1004
const/4 v7, 0x0
.line 1005
.local v7, "currentNotUtf8":Z
const/4 v8, 0x0
.local v8, "children":I
:goto_6e
if-ge v8, v5, :cond_8f
.line 1007
add-int v9, v6, v8
aget-byte v9, p0, v9
const/16 v10, -0x80
and-int/2addr v9, v10
if-eq v9, v10, :cond_8c
.line 1008
add-int v9, v6, v8
aget-byte v9, p0, v9
and-int/lit8 v9, v9, 0x7f
add-int v10, v6, v8
aget-byte v10, p0, v10
if-ne v9, v10, :cond_8b
aget-byte v9, p0, v6
if-eqz v9, :cond_8b
.line 1010
add-int/lit8 v1, v1, 0x1
.line 1012
:cond_8b
const/4 v7, 0x1
.line 1005
:cond_8c
add-int/lit8 v8, v8, 0x1
goto :goto_6e
.line 1015
.end local v8 # "children":I
:cond_8f
if-eqz v7, :cond_96
.line 1016
add-int/lit8 v0, v0, -0x1
.line 1017
add-int/lit8 v6, v6, 0x1
goto :goto_98
.line 1019
:cond_96
add-int/2addr v0, v5
.line 1020
add-int/2addr v6, v5
.line 1022
:goto_98
const/4 v5, 0x0
.line 1023
.end local v7 # "currentNotUtf8":Z
goto :goto_21
.line 984
:cond_9a
:goto_9a
return v4
.line 1026
:cond_9b
if-ne v1, v2, :cond_9e
.line 1027
return v3
.line 1029
:cond_9e
const/high16 v3, 0x42c80000 # 100.0f
add-int v4, v0, v1
int-to-float v4, v4
int-to-float v7, v2
div-float/2addr v4, v7
mul-float v4, v4, v3
float-to-int v3, v4
return v3
.end method
.method public static isUtf8(Ljava/io/File;)Z
.registers 8
.param p0, "file" # Ljava/io/File;
.line 936
const/4 v0, 0x0
if-nez p0, :cond_4
return v0
.line 937
:cond_4
const/4 v1, 0x0
.line 939
.local v1, "is":Ljava/io/InputStream;
const/16 v2, 0x18
:try_start_7
new-array v2, v2, [B
.line 940
.local v2, "bytes":[B
new-instance v3, Ljava/io/BufferedInputStream;
new-instance v4, Ljava/io/FileInputStream;
invoke-direct {v4, p0}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
invoke-direct {v3, v4}, Ljava/io/BufferedInputStream;-><init>(Ljava/io/InputStream;)V
move-object v1, v3
.line 941
invoke-virtual {v1, v2}, Ljava/io/InputStream;->read([B)I
move-result v3
.line 942
.local v3, "read":I
const/4 v4, -0x1
if-eq v3, v4, :cond_33
.line 943
new-array v4, v3, [B
.line 944
.local v4, "readArr":[B
invoke-static {v2, v0, v4, v0, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 945
invoke-static {v4}, Lcom/blankj/utilcode/util/FileUtils;->isUtf8([B)I
move-result v5
:try_end_24
.catch Ljava/io/IOException; {:try_start_7 .. :try_end_24} :catch_40
.catchall {:try_start_7 .. :try_end_24} :catchall_3e
const/16 v6, 0x64
if-ne v5, v6, :cond_29
const/4 v0, 0x1
.line 953
:cond_29
nop
.line 954
:try_start_2a
invoke-virtual {v1}, Ljava/io/InputStream;->close()V
:try_end_2d
.catch Ljava/io/IOException; {:try_start_2a .. :try_end_2d} :catch_2e
.line 958
goto :goto_32
.line 956
:catch_2e
move-exception v5
.line 957
.local v5, "e":Ljava/io/IOException;
invoke-virtual {v5}, Ljava/io/IOException;->printStackTrace()V
.line 945
.end local v5 # "e":Ljava/io/IOException;
:goto_32
return v0
.line 947
.end local v4 # "readArr":[B
:cond_33
nop
.line 953
nop
.line 954
:try_start_35
invoke-virtual {v1}, Ljava/io/InputStream;->close()V
:try_end_38
.catch Ljava/io/IOException; {:try_start_35 .. :try_end_38} :catch_39
.line 958
goto :goto_3d
.line 956
:catch_39
move-exception v4
.line 957
.local v4, "e":Ljava/io/IOException;
invoke-virtual {v4}, Ljava/io/IOException;->printStackTrace()V
.line 947
.end local v4 # "e":Ljava/io/IOException;
:goto_3d
return v0
.line 952
.end local v2 # "bytes":[B
.end local v3 # "read":I
:catchall_3e
move-exception v0
goto :goto_51
.line 949
:catch_40
move-exception v2
.line 950
.local v2, "e":Ljava/io/IOException;
:try_start_41
invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V
:try_end_44
.catchall {:try_start_41 .. :try_end_44} :catchall_3e
.line 953
.end local v2 # "e":Ljava/io/IOException;
if-eqz v1, :cond_4f
.line 954
:try_start_46
invoke-virtual {v1}, Ljava/io/InputStream;->close()V
:try_end_49
.catch Ljava/io/IOException; {:try_start_46 .. :try_end_49} :catch_4a
goto :goto_4f
.line 956
:catch_4a
move-exception v2
.line 957
.restart local v2 # "e":Ljava/io/IOException;
invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V
.line 959
.end local v2 # "e":Ljava/io/IOException;
goto :goto_50
.line 958
:cond_4f
:goto_4f
nop
.line 960
:goto_50
return v0
.line 953
:goto_51
if-eqz v1, :cond_5c
.line 954
:try_start_53
invoke-virtual {v1}, Ljava/io/InputStream;->close()V
:try_end_56
.catch Ljava/io/IOException; {:try_start_53 .. :try_end_56} :catch_57
goto :goto_5c
.line 956
:catch_57
move-exception v2
.line 957
.restart local v2 # "e":Ljava/io/IOException;
invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V
goto :goto_5d
.line 958
.end local v2 # "e":Ljava/io/IOException;
:cond_5c
:goto_5c
nop
.line 959
:goto_5d
throw v0
.end method
.method public static isUtf8(Ljava/lang/String;)Z
.registers 2
.param p0, "filePath" # Ljava/lang/String;
.line 926
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/FileUtils;->isUtf8(Ljava/io/File;)Z
move-result v0
return v0
.end method
.method public static listFilesInDir(Ljava/io/File;)Ljava/util/List;
.registers 2
.param p0, "dir" # Ljava/io/File;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/io/File;",
")",
"Ljava/util/List<",
"Ljava/io/File;",
">;"
}
.end annotation
.line 630
const/4 v0, 0x0
invoke-static {p0, v0}, Lcom/blankj/utilcode/util/FileUtils;->listFilesInDir(Ljava/io/File;Ljava/util/Comparator;)Ljava/util/List;
move-result-object v0
return-object v0
.end method
.method public static listFilesInDir(Ljava/io/File;Ljava/util/Comparator;)Ljava/util/List;
.registers 3
.param p0, "dir" # Ljava/io/File;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/io/File;",
"Ljava/util/Comparator<",
"Ljava/io/File;",
">;)",
"Ljava/util/List<",
"Ljava/io/File;",
">;"
}
.end annotation
.line 654
.local p1, "comparator":Ljava/util/Comparator;, "Ljava/util/Comparator<Ljava/io/File;>;"
const/4 v0, 0x0
invoke-static {p0, v0, p1}, Lcom/blankj/utilcode/util/FileUtils;->listFilesInDir(Ljava/io/File;ZLjava/util/Comparator;)Ljava/util/List;
move-result-object v0
return-object v0
.end method
.method public static listFilesInDir(Ljava/io/File;Z)Ljava/util/List;
.registers 3
.param p0, "dir" # Ljava/io/File;
.param p1, "isRecursive" # Z
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/io/File;",
"Z)",
"Ljava/util/List<",
"Ljava/io/File;",
">;"
}
.end annotation
.line 676
const/4 v0, 0x0
invoke-static {p0, p1, v0}, Lcom/blankj/utilcode/util/FileUtils;->listFilesInDir(Ljava/io/File;ZLjava/util/Comparator;)Ljava/util/List;
move-result-object v0
return-object v0
.end method
.method public static listFilesInDir(Ljava/io/File;ZLjava/util/Comparator;)Ljava/util/List;
.registers 4
.param p0, "dir" # Ljava/io/File;
.param p1, "isRecursive" # Z
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/io/File;",
"Z",
"Ljava/util/Comparator<",
"Ljava/io/File;",
">;)",
"Ljava/util/List<",
"Ljava/io/File;",
">;"
}
.end annotation
.line 704
.local p2, "comparator":Ljava/util/Comparator;, "Ljava/util/Comparator<Ljava/io/File;>;"
new-instance v0, Lcom/blankj/utilcode/util/FileUtils$3;
invoke-direct {v0}, Lcom/blankj/utilcode/util/FileUtils$3;-><init>()V
invoke-static {p0, v0, p1, p2}, Lcom/blankj/utilcode/util/FileUtils;->listFilesInDirWithFilter(Ljava/io/File;Ljava/io/FileFilter;ZLjava/util/Comparator;)Ljava/util/List;
move-result-object v0
return-object v0
.end method
.method public static listFilesInDir(Ljava/lang/String;)Ljava/util/List;
.registers 2
.param p0, "dirPath" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
")",
"Ljava/util/List<",
"Ljava/io/File;",
">;"
}
.end annotation
.line 619
const/4 v0, 0x0
invoke-static {p0, v0}, Lcom/blankj/utilcode/util/FileUtils;->listFilesInDir(Ljava/lang/String;Ljava/util/Comparator;)Ljava/util/List;
move-result-object v0
return-object v0
.end method
.method public static listFilesInDir(Ljava/lang/String;Ljava/util/Comparator;)Ljava/util/List;
.registers 4
.param p0, "dirPath" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Ljava/util/Comparator<",
"Ljava/io/File;",
">;)",
"Ljava/util/List<",
"Ljava/io/File;",
">;"
}
.end annotation
.line 642
.local p1, "comparator":Ljava/util/Comparator;, "Ljava/util/Comparator<Ljava/io/File;>;"
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
const/4 v1, 0x0
invoke-static {v0, v1}, Lcom/blankj/utilcode/util/FileUtils;->listFilesInDir(Ljava/io/File;Z)Ljava/util/List;
move-result-object v0
return-object v0
.end method
.method public static listFilesInDir(Ljava/lang/String;Z)Ljava/util/List;
.registers 3
.param p0, "dirPath" # Ljava/lang/String;
.param p1, "isRecursive" # Z
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Z)",
"Ljava/util/List<",
"Ljava/io/File;",
">;"
}
.end annotation
.line 665
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
invoke-static {v0, p1}, Lcom/blankj/utilcode/util/FileUtils;->listFilesInDir(Ljava/io/File;Z)Ljava/util/List;
move-result-object v0
return-object v0
.end method
.method public static listFilesInDir(Ljava/lang/String;ZLjava/util/Comparator;)Ljava/util/List;
.registers 4
.param p0, "dirPath" # Ljava/lang/String;
.param p1, "isRecursive" # Z
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Z",
"Ljava/util/Comparator<",
"Ljava/io/File;",
">;)",
"Ljava/util/List<",
"Ljava/io/File;",
">;"
}
.end annotation
.line 690
.local p2, "comparator":Ljava/util/Comparator;, "Ljava/util/Comparator<Ljava/io/File;>;"
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
invoke-static {v0, p1, p2}, Lcom/blankj/utilcode/util/FileUtils;->listFilesInDir(Ljava/io/File;ZLjava/util/Comparator;)Ljava/util/List;
move-result-object v0
return-object v0
.end method
.method public static listFilesInDirWithFilter(Ljava/io/File;Ljava/io/FileFilter;)Ljava/util/List;
.registers 4
.param p0, "dir" # Ljava/io/File;
.param p1, "filter" # Ljava/io/FileFilter;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/io/File;",
"Ljava/io/FileFilter;",
")",
"Ljava/util/List<",
"Ljava/io/File;",
">;"
}
.end annotation
.line 735
const/4 v0, 0x0
const/4 v1, 0x0
invoke-static {p0, p1, v0, v1}, Lcom/blankj/utilcode/util/FileUtils;->listFilesInDirWithFilter(Ljava/io/File;Ljava/io/FileFilter;ZLjava/util/Comparator;)Ljava/util/List;
move-result-object v0
return-object v0
.end method
.method public static listFilesInDirWithFilter(Ljava/io/File;Ljava/io/FileFilter;Ljava/util/Comparator;)Ljava/util/List;
.registers 4
.param p0, "dir" # Ljava/io/File;
.param p1, "filter" # Ljava/io/FileFilter;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/io/File;",
"Ljava/io/FileFilter;",
"Ljava/util/Comparator<",
"Ljava/io/File;",
">;)",
"Ljava/util/List<",
"Ljava/io/File;",
">;"
}
.end annotation
.line 765
.local p2, "comparator":Ljava/util/Comparator;, "Ljava/util/Comparator<Ljava/io/File;>;"
const/4 v0, 0x0
invoke-static {p0, p1, v0, p2}, Lcom/blankj/utilcode/util/FileUtils;->listFilesInDirWithFilter(Ljava/io/File;Ljava/io/FileFilter;ZLjava/util/Comparator;)Ljava/util/List;
move-result-object v0
return-object v0
.end method
.method public static listFilesInDirWithFilter(Ljava/io/File;Ljava/io/FileFilter;Z)Ljava/util/List;
.registers 4
.param p0, "dir" # Ljava/io/File;
.param p1, "filter" # Ljava/io/FileFilter;
.param p2, "isRecursive" # Z
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/io/File;",
"Ljava/io/FileFilter;",
"Z)",
"Ljava/util/List<",
"Ljava/io/File;",
">;"
}
.end annotation
.line 793
const/4 v0, 0x0
invoke-static {p0, p1, p2, v0}, Lcom/blankj/utilcode/util/FileUtils;->listFilesInDirWithFilter(Ljava/io/File;Ljava/io/FileFilter;ZLjava/util/Comparator;)Ljava/util/List;
move-result-object v0
return-object v0
.end method
.method public static listFilesInDirWithFilter(Ljava/io/File;Ljava/io/FileFilter;ZLjava/util/Comparator;)Ljava/util/List;
.registers 5
.param p0, "dir" # Ljava/io/File;
.param p1, "filter" # Ljava/io/FileFilter;
.param p2, "isRecursive" # Z
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/io/File;",
"Ljava/io/FileFilter;",
"Z",
"Ljava/util/Comparator<",
"Ljava/io/File;",
">;)",
"Ljava/util/List<",
"Ljava/io/File;",
">;"
}
.end annotation
.line 826
.local p3, "comparator":Ljava/util/Comparator;, "Ljava/util/Comparator<Ljava/io/File;>;"
invoke-static {p0, p1, p2}, Lcom/blankj/utilcode/util/FileUtils;->listFilesInDirWithFilterInner(Ljava/io/File;Ljava/io/FileFilter;Z)Ljava/util/List;
move-result-object v0
.line 827
.local v0, "files":Ljava/util/List;, "Ljava/util/List<Ljava/io/File;>;"
if-eqz p3, :cond_9
.line 828
invoke-static {v0, p3}, Ljava/util/Collections;->sort(Ljava/util/List;Ljava/util/Comparator;)V
.line 830
:cond_9
return-object v0
.end method
.method public static listFilesInDirWithFilter(Ljava/lang/String;Ljava/io/FileFilter;)Ljava/util/List;
.registers 3
.param p0, "dirPath" # Ljava/lang/String;
.param p1, "filter" # Ljava/io/FileFilter;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Ljava/io/FileFilter;",
")",
"Ljava/util/List<",
"Ljava/io/File;",
">;"
}
.end annotation
.line 722
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
invoke-static {v0, p1}, Lcom/blankj/utilcode/util/FileUtils;->listFilesInDirWithFilter(Ljava/io/File;Ljava/io/FileFilter;)Ljava/util/List;
move-result-object v0
return-object v0
.end method
.method public static listFilesInDirWithFilter(Ljava/lang/String;Ljava/io/FileFilter;Ljava/util/Comparator;)Ljava/util/List;
.registers 4
.param p0, "dirPath" # Ljava/lang/String;
.param p1, "filter" # Ljava/io/FileFilter;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Ljava/io/FileFilter;",
"Ljava/util/Comparator<",
"Ljava/io/File;",
">;)",
"Ljava/util/List<",
"Ljava/io/File;",
">;"
}
.end annotation
.line 750
.local p2, "comparator":Ljava/util/Comparator;, "Ljava/util/Comparator<Ljava/io/File;>;"
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
invoke-static {v0, p1, p2}, Lcom/blankj/utilcode/util/FileUtils;->listFilesInDirWithFilter(Ljava/io/File;Ljava/io/FileFilter;Ljava/util/Comparator;)Ljava/util/List;
move-result-object v0
return-object v0
.end method
.method public static listFilesInDirWithFilter(Ljava/lang/String;Ljava/io/FileFilter;Z)Ljava/util/List;
.registers 4
.param p0, "dirPath" # Ljava/lang/String;
.param p1, "filter" # Ljava/io/FileFilter;
.param p2, "isRecursive" # Z
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Ljava/io/FileFilter;",
"Z)",
"Ljava/util/List<",
"Ljava/io/File;",
">;"
}
.end annotation
.line 779
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
invoke-static {v0, p1, p2}, Lcom/blankj/utilcode/util/FileUtils;->listFilesInDirWithFilter(Ljava/io/File;Ljava/io/FileFilter;Z)Ljava/util/List;
move-result-object v0
return-object v0
.end method
.method public static listFilesInDirWithFilter(Ljava/lang/String;Ljava/io/FileFilter;ZLjava/util/Comparator;)Ljava/util/List;
.registers 5
.param p0, "dirPath" # Ljava/lang/String;
.param p1, "filter" # Ljava/io/FileFilter;
.param p2, "isRecursive" # Z
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Ljava/io/FileFilter;",
"Z",
"Ljava/util/Comparator<",
"Ljava/io/File;",
">;)",
"Ljava/util/List<",
"Ljava/io/File;",
">;"
}
.end annotation
.line 810
.local p3, "comparator":Ljava/util/Comparator;, "Ljava/util/Comparator<Ljava/io/File;>;"
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
invoke-static {v0, p1, p2, p3}, Lcom/blankj/utilcode/util/FileUtils;->listFilesInDirWithFilter(Ljava/io/File;Ljava/io/FileFilter;ZLjava/util/Comparator;)Ljava/util/List;
move-result-object v0
return-object v0
.end method
.method private static listFilesInDirWithFilterInner(Ljava/io/File;Ljava/io/FileFilter;Z)Ljava/util/List;
.registers 9
.param p0, "dir" # Ljava/io/File;
.param p1, "filter" # Ljava/io/FileFilter;
.param p2, "isRecursive" # Z
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/io/File;",
"Ljava/io/FileFilter;",
"Z)",
"Ljava/util/List<",
"Ljava/io/File;",
">;"
}
.end annotation
.line 836
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 837
.local v0, "list":Ljava/util/List;, "Ljava/util/List<Ljava/io/File;>;"
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->isDir(Ljava/io/File;)Z
move-result v1
if-nez v1, :cond_c
return-object v0
.line 838
:cond_c
invoke-virtual {p0}, Ljava/io/File;->listFiles()[Ljava/io/File;
move-result-object v1
.line 839
.local v1, "files":[Ljava/io/File;
if-eqz v1, :cond_37
array-length v2, v1
if-eqz v2, :cond_37
.line 840
array-length v2, v1
const/4 v3, 0x0
:goto_17
if-ge v3, v2, :cond_37
aget-object v4, v1, v3
.line 841
.local v4, "file":Ljava/io/File;
invoke-interface {p1, v4}, Ljava/io/FileFilter;->accept(Ljava/io/File;)Z
move-result v5
if-eqz v5, :cond_24
.line 842
invoke-interface {v0, v4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 844
:cond_24
if-eqz p2, :cond_34
invoke-virtual {v4}, Ljava/io/File;->isDirectory()Z
move-result v5
if-eqz v5, :cond_34
.line 845
const/4 v5, 0x1
invoke-static {v4, p1, v5}, Lcom/blankj/utilcode/util/FileUtils;->listFilesInDirWithFilterInner(Ljava/io/File;Ljava/io/FileFilter;Z)Ljava/util/List;
move-result-object v5
invoke-interface {v0, v5}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z
.line 840
.end local v4 # "file":Ljava/io/File;
:cond_34
add-int/lit8 v3, v3, 0x1
goto :goto_17
.line 849
:cond_37
return-object v0
.end method
.method public static move(Ljava/io/File;Ljava/io/File;)Z
.registers 3
.param p0, "src" # Ljava/io/File;
.param p1, "dest" # Ljava/io/File;
.line 362
const/4 v0, 0x0
invoke-static {p0, p1, v0}, Lcom/blankj/utilcode/util/FileUtils;->move(Ljava/io/File;Ljava/io/File;Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;)Z
move-result v0
return v0
.end method
.method public static move(Ljava/io/File;Ljava/io/File;Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;)Z
.registers 4
.param p0, "src" # Ljava/io/File;
.param p1, "dest" # Ljava/io/File;
.param p2, "listener" # Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;
.line 376
if-nez p0, :cond_4
const/4 v0, 0x0
return v0
.line 377
:cond_4
invoke-virtual {p0}, Ljava/io/File;->isDirectory()Z
move-result v0
if-eqz v0, :cond_f
.line 378
invoke-static {p0, p1, p2}, Lcom/blankj/utilcode/util/FileUtils;->moveDir(Ljava/io/File;Ljava/io/File;Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;)Z
move-result v0
return v0
.line 380
:cond_f
invoke-static {p0, p1, p2}, Lcom/blankj/utilcode/util/FileUtils;->moveFile(Ljava/io/File;Ljava/io/File;Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;)Z
move-result v0
return v0
.end method
.method public static move(Ljava/lang/String;Ljava/lang/String;)Z
.registers 5
.param p0, "srcPath" # Ljava/lang/String;
.param p1, "destPath" # Ljava/lang/String;
.line 336
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
invoke-static {p1}, Lcom/blankj/utilcode/util/FileUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v1
const/4 v2, 0x0
invoke-static {v0, v1, v2}, Lcom/blankj/utilcode/util/FileUtils;->move(Ljava/io/File;Ljava/io/File;Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;)Z
move-result v0
return v0
.end method
.method public static move(Ljava/lang/String;Ljava/lang/String;Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;)Z
.registers 5
.param p0, "srcPath" # Ljava/lang/String;
.param p1, "destPath" # Ljava/lang/String;
.param p2, "listener" # Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;
.line 350
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
invoke-static {p1}, Lcom/blankj/utilcode/util/FileUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v1
invoke-static {v0, v1, p2}, Lcom/blankj/utilcode/util/FileUtils;->move(Ljava/io/File;Ljava/io/File;Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;)Z
move-result v0
return v0
.end method
.method public static moveDir(Ljava/io/File;Ljava/io/File;Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;)Z
.registers 4
.param p0, "srcDir" # Ljava/io/File;
.param p1, "destDir" # Ljava/io/File;
.param p2, "listener" # Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;
.line 394
const/4 v0, 0x1
invoke-static {p0, p1, p2, v0}, Lcom/blankj/utilcode/util/FileUtils;->copyOrMoveDir(Ljava/io/File;Ljava/io/File;Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;Z)Z
move-result v0
return v0
.end method
.method public static moveFile(Ljava/io/File;Ljava/io/File;Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;)Z
.registers 4
.param p0, "srcFile" # Ljava/io/File;
.param p1, "destFile" # Ljava/io/File;
.param p2, "listener" # Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;
.line 408
const/4 v0, 0x1
invoke-static {p0, p1, p2, v0}, Lcom/blankj/utilcode/util/FileUtils;->copyOrMoveFile(Ljava/io/File;Ljava/io/File;Lcom/blankj/utilcode/util/FileUtils$OnReplaceListener;Z)Z
move-result v0
return v0
.end method
.method public static notifySystemToScan(Ljava/io/File;)V
.registers 4
.param p0, "file" # Ljava/io/File;
.line 1380
if-eqz p0, :cond_1f
invoke-virtual {p0}, Ljava/io/File;->exists()Z
move-result v0
if-nez v0, :cond_9
goto :goto_1f
.line 1381
:cond_9
new-instance v0, Landroid/content/Intent;
const-string v1, "android.intent.action.MEDIA_SCANNER_SCAN_FILE"
invoke-direct {v0, v1}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
.line 1382
.local v0, "intent":Landroid/content/Intent;
invoke-static {p0}, Landroid/net/Uri;->fromFile(Ljava/io/File;)Landroid/net/Uri;
move-result-object v1
.line 1383
.local v1, "uri":Landroid/net/Uri;
invoke-virtual {v0, v1}, Landroid/content/Intent;->setData(Landroid/net/Uri;)Landroid/content/Intent;
.line 1384
invoke-static {}, Lcom/blankj/utilcode/util/Utils;->getApp()Landroid/app/Application;
move-result-object v2
invoke-virtual {v2, v0}, Landroid/app/Application;->sendBroadcast(Landroid/content/Intent;)V
.line 1385
return-void
.line 1380
.end local v0 # "intent":Landroid/content/Intent;
.end local v1 # "uri":Landroid/net/Uri;
:cond_1f
:goto_1f
return-void
.end method
.method public static notifySystemToScan(Ljava/lang/String;)V
.registers 2
.param p0, "filePath" # Ljava/lang/String;
.line 1393
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
invoke-static {v0}, Lcom/blankj/utilcode/util/FileUtils;->notifySystemToScan(Ljava/io/File;)V
.line 1394
return-void
.end method
.method public static rename(Ljava/io/File;Ljava/lang/String;)Z
.registers 7
.param p0, "file" # Ljava/io/File;
.param p1, "newName" # Ljava/lang/String;
.line 113
const/4 v0, 0x0
if-nez p0, :cond_4
return v0
.line 115
:cond_4
invoke-virtual {p0}, Ljava/io/File;->exists()Z
move-result v1
if-nez v1, :cond_b
return v0
.line 117
:cond_b
invoke-static {p1}, Lcom/blankj/utilcode/util/FileUtils;->isSpace(Ljava/lang/String;)Z
move-result v1
if-eqz v1, :cond_12
return v0
.line 119
:cond_12
invoke-virtual {p0}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v1
invoke-virtual {p1, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
const/4 v2, 0x1
if-eqz v1, :cond_1e
return v2
.line 120
:cond_1e
new-instance v1, Ljava/io/File;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {p0}, Ljava/io/File;->getParent()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
sget-object v4, Ljava/io/File;->separator:Ljava/lang/String;
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-direct {v1, v3}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 122
.local v1, "newFile":Ljava/io/File;
invoke-virtual {v1}, Ljava/io/File;->exists()Z
move-result v3
if-nez v3, :cond_49
.line 123
invoke-virtual {p0, v1}, Ljava/io/File;->renameTo(Ljava/io/File;)Z
move-result v3
if-eqz v3, :cond_49
const/4 v0, 0x1
goto :goto_4a
:cond_49
nop
.line 122
:goto_4a
return v0
.end method
.method public static rename(Ljava/lang/String;Ljava/lang/String;)Z
.registers 3
.param p0, "filePath" # Ljava/lang/String;
.param p1, "newName" # Ljava/lang/String;
.line 101
invoke-static {p0}, Lcom/blankj/utilcode/util/FileUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
invoke-static {v0, p1}, Lcom/blankj/utilcode/util/FileUtils;->rename(Ljava/io/File;Ljava/lang/String;)Z
move-result v0
return v0
.end method
.method private static writeFileFromIS(Ljava/io/File;Ljava/io/InputStream;)Z
.registers 9
.param p0, "file" # Ljava/io/File;
.param p1, "is" # Ljava/io/InputStream;
.line 1449
const/4 v0, 0x0
.line 1451
.local v0, "os":Ljava/io/OutputStream;
const/4 v1, 0x0
:try_start_2
new-instance v2, Ljava/io/BufferedOutputStream;
new-instance v3, Ljava/io/FileOutputStream;
invoke-direct {v3, p0}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
invoke-direct {v2, v3}, Ljava/io/BufferedOutputStream;-><init>(Ljava/io/OutputStream;)V
move-object v0, v2
.line 1452
const/16 v2, 0x2000
new-array v3, v2, [B
.line 1454
.local v3, "data":[B
:goto_11
invoke-virtual {p1, v3, v1, v2}, Ljava/io/InputStream;->read([BII)I
move-result v4
move v5, v4
.local v5, "len":I
const/4 v6, -0x1
if-eq v4, v6, :cond_1d
.line 1455
invoke-virtual {v0, v3, v1, v5}, Ljava/io/OutputStream;->write([BII)V
:try_end_1c
.catch Ljava/io/IOException; {:try_start_2 .. :try_end_1c} :catch_32
.catchall {:try_start_2 .. :try_end_1c} :catchall_30
goto :goto_11
.line 1457
:cond_1d
const/4 v1, 0x1
.line 1463
:try_start_1e
invoke-virtual {p1}, Ljava/io/InputStream;->close()V
:try_end_21
.catch Ljava/io/IOException; {:try_start_1e .. :try_end_21} :catch_22
.line 1466
goto :goto_26
.line 1464
:catch_22
move-exception v2
.line 1465
.local v2, "e":Ljava/io/IOException;
invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V
.line 1468
.end local v2 # "e":Ljava/io/IOException;
:goto_26
nop
.line 1469
:try_start_27
invoke-virtual {v0}, Ljava/io/OutputStream;->close()V
:try_end_2a
.catch Ljava/io/IOException; {:try_start_27 .. :try_end_2a} :catch_2b
.line 1473
goto :goto_2f
.line 1471
:catch_2b
move-exception v2
.line 1472
.restart local v2 # "e":Ljava/io/IOException;
invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V
.line 1457
.end local v2 # "e":Ljava/io/IOException;
:goto_2f
return v1
.line 1462
.end local v3 # "data":[B
.end local v5 # "len":I
:catchall_30
move-exception v1
goto :goto_4c
.line 1458
:catch_32
move-exception v2
.line 1459
.restart local v2 # "e":Ljava/io/IOException;
:try_start_33
invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V
:try_end_36
.catchall {:try_start_33 .. :try_end_36} :catchall_30
.line 1460
nop
.line 1463
:try_start_37
invoke-virtual {p1}, Ljava/io/InputStream;->close()V
:try_end_3a
.catch Ljava/io/IOException; {:try_start_37 .. :try_end_3a} :catch_3b
.line 1466
goto :goto_3f
.line 1464
:catch_3b
move-exception v3
.line 1465
.local v3, "e":Ljava/io/IOException;
invoke-virtual {v3}, Ljava/io/IOException;->printStackTrace()V
.line 1468
.end local v3 # "e":Ljava/io/IOException;
:goto_3f
if-eqz v0, :cond_4a
.line 1469
:try_start_41
invoke-virtual {v0}, Ljava/io/OutputStream;->close()V
:try_end_44
.catch Ljava/io/IOException; {:try_start_41 .. :try_end_44} :catch_45
goto :goto_4a
.line 1471
:catch_45
move-exception v3
.line 1472
.restart local v3 # "e":Ljava/io/IOException;
invoke-virtual {v3}, Ljava/io/IOException;->printStackTrace()V
goto :goto_4b
.line 1473
.end local v3 # "e":Ljava/io/IOException;
:cond_4a
:goto_4a
nop
.line 1460
:goto_4b
return v1
.line 1463
.end local v2 # "e":Ljava/io/IOException;
:goto_4c
:try_start_4c
invoke-virtual {p1}, Ljava/io/InputStream;->close()V
:try_end_4f
.catch Ljava/io/IOException; {:try_start_4c .. :try_end_4f} :catch_50
.line 1466
goto :goto_54
.line 1464
:catch_50
move-exception v2
.line 1465
.restart local v2 # "e":Ljava/io/IOException;
invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V
.line 1468
.end local v2 # "e":Ljava/io/IOException;
:goto_54
if-eqz v0, :cond_5f
.line 1469
:try_start_56
invoke-virtual {v0}, Ljava/io/OutputStream;->close()V
:try_end_59
.catch Ljava/io/IOException; {:try_start_56 .. :try_end_59} :catch_5a
goto :goto_5f
.line 1471
:catch_5a
move-exception v2
.line 1472
.restart local v2 # "e":Ljava/io/IOException;
invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V
goto :goto_60
.line 1473
.end local v2 # "e":Ljava/io/IOException;
:cond_5f
:goto_5f
nop
.line 1474
:goto_60
goto :goto_62
:goto_61
throw v1
:goto_62
goto :goto_61
.end method