@@ -161,50 +161,20 @@ protected void load() throws IOException {
161
161
codeFolder = new File (folder , "code" );
162
162
dataFolder = new File (folder , "data" );
163
163
164
- // get list of files in the sketch folder
165
- String list [] = folder .list ();
166
-
167
- // reset these because load() may be called after an
168
- // external editor event. (fix for 0099)
169
- codeCount = 0 ;
170
-
171
- code = new SketchCode [list .length ];
172
-
173
- List <String > extensions = getExtensions ();
174
-
175
- for (String filename : list ) {
176
- // Ignoring the dot prefix files is especially important to avoid files
177
- // with the ._ prefix on Mac OS X. (You'll see this with Mac files on
178
- // non-HFS drives, i.e. a thumb drive formatted FAT32.)
179
- if (filename .startsWith ("." )) continue ;
180
-
181
- // Don't let some wacko name a directory blah.pde or bling.java.
182
- if (new File (folder , filename ).isDirectory ()) continue ;
183
-
184
- // figure out the name without any extension
185
- String base = filename ;
186
- // now strip off the .pde and .java extensions
187
- for (String extension : extensions ) {
188
- if (base .toLowerCase ().endsWith ("." + extension )) {
189
- base = base .substring (0 , base .length () - (extension .length () + 1 ));
190
-
191
- // Don't allow people to use files with invalid names, since on load,
192
- // it would be otherwise possible to sneak in nasty filenames. [0116]
193
- if (Sketch .isSanitaryName (base )) {
194
- code [codeCount ++] =
195
- new SketchCode (new File (folder , filename ));
196
- } else {
197
- editor .console .message (I18n .format ("File name {0} is invalid: ignored" , filename ), true , false );
198
- }
199
- }
164
+ List <SketchCode > tmpcode = new ArrayList <SketchCode >();
165
+ for (File file : FileUtils .listFiles (folder , false , getExtensions ())) {
166
+ if (Sketch .isSanitaryName (file .getName ())) {
167
+ tmpcode .add (new SketchCode (file ));
168
+ } else {
169
+ editor .console .message (I18n .format ("File name {0} is invalid: ignored" , file .getName ()), true , false );
200
170
}
201
171
}
202
172
203
- if (codeCount == 0 )
173
+ if (tmpcode . isEmpty () )
204
174
throw new IOException (_ ("No valid code files found" ));
205
175
206
- // Remove any code that wasn't proper
207
- code = ( SketchCode []) PApplet . subset ( code , 0 , codeCount );
176
+ codeCount = tmpcode . size ();
177
+ code = tmpcode . toArray ( new SketchCode [ codeCount ] );
208
178
209
179
// move the main class to the first tab
210
180
// start at 1, if it's at zero, don't bother
0 commit comments