1
1
package com .rarchives .ripme .tst .ripper .rippers ;
2
2
3
- import java .io .File ;
4
- import java .io .IOException ;
5
- import java .util .List ;
6
-
3
+ import com .rarchives .ripme .ripper .AbstractRipper ;
7
4
import com .rarchives .ripme .ripper .rippers .ChanRipper ;
8
-
5
+ import com . rarchives . ripme . utils . Utils ;
9
6
import org .apache .logging .log4j .Level ;
10
7
import org .apache .logging .log4j .LogManager ;
11
8
import org .apache .logging .log4j .Logger ;
14
11
import org .apache .logging .log4j .core .config .LoggerConfig ;
15
12
import org .junit .jupiter .api .Assertions ;
16
13
17
- import com .rarchives .ripme .ripper .AbstractRipper ;
18
- import com .rarchives .ripme .utils .Utils ;
14
+ import java .io .File ;
15
+ import java .io .IOException ;
16
+ import java .nio .file .Files ;
17
+ import java .nio .file .Path ;
18
+ import java .util .List ;
19
+ import java .util .stream .Stream ;
19
20
20
21
/**
21
22
* Contains helper methods for testing rippers.
@@ -41,12 +42,13 @@ void testRipper(AbstractRipper ripper) {
41
42
ripper .rip ();
42
43
if (logger .isTraceEnabled ()) {
43
44
logger .trace ("working dir: " + ripper .getWorkingDir ());
44
- logger .trace ("list files: " + ripper .getWorkingDir ().listFiles ().length );
45
- for (int i = 0 ; i < ripper .getWorkingDir ().listFiles ().length ; i ++) {
46
- logger .trace (" " + ripper .getWorkingDir ().listFiles ()[i ]);
45
+ File wd = ripper .getWorkingDir ().toFile ();
46
+ logger .trace ("list files: " + wd .listFiles ().length );
47
+ for (int i = 0 ; i < wd .listFiles ().length ; i ++) {
48
+ logger .trace (" " + wd .listFiles ()[i ]);
47
49
}
48
50
}
49
- Assertions .assertTrue ( ripper .getWorkingDir (). listFiles (). length >= 1 ,
51
+ Assertions .assertFalse ( isEmpty ( ripper .getWorkingDir ()) ,
50
52
"Failed to download a single file from " + ripper .getURL ());
51
53
} catch (IOException e ) {
52
54
if (e .getMessage ().contains ("Ripping interrupted" )) {
@@ -97,7 +99,8 @@ void testChanRipper(ChanRipper ripper) {
97
99
"txt" , "log" , "php" };
98
100
99
101
/** Recursively deletes a directory */
100
- void deleteDir (File dir ) {
102
+ void deleteDir (Path folder ) {
103
+ File dir = folder .toFile ();
101
104
if (!dir .getName ().contains ("_" )) {
102
105
// All ripped albums contain an underscore
103
106
// Don't delete an album if it doesn't have an underscore
@@ -113,15 +116,16 @@ void deleteDir(File dir) {
113
116
return ;
114
117
}
115
118
if (f .isDirectory ()) {
116
- deleteDir (f );
119
+ deleteDir (f . toPath () );
117
120
}
118
121
f .delete ();
119
122
}
120
123
dir .delete ();
121
124
}
122
125
123
- void deleteSubdirs (File workingDir ) {
124
- for (File f : workingDir .listFiles ()) {
126
+ void deleteSubdirs (Path workingDir ) {
127
+ File wd = workingDir .toFile ();
128
+ for (File f : wd .listFiles ()) {
125
129
if (f .isDirectory ()) {
126
130
for (File sf : f .listFiles ()) {
127
131
logger .debug ("Deleting " + sf );
@@ -133,4 +137,12 @@ void deleteSubdirs(File workingDir) {
133
137
}
134
138
}
135
139
140
+ private boolean isEmpty (Path path ) throws IOException {
141
+ if (Files .isDirectory (path )) {
142
+ try (Stream <Path > entries = Files .list (path )) {
143
+ return !entries .findFirst ().isPresent ();
144
+ }
145
+ }
146
+ return false ;
147
+ }
136
148
}
0 commit comments