Kaip parašyti „Java“ kodą norint ištrinti kelis failus vienu metu

Autorius Barry Burdas

„Java“ programoje galbūt norėsite parašyti kodą, kuris ištrins kelis failus vienu metu. Tai gali būti šiek tiek sudėtingiau, nei atrodo. Failo ištrynimo kodas atrodo taip:



new File('importantData.txt').delete();

Šiame kodenaujas failasskambutis nurodo vieną failą. Tai labai gražus kodas, tačiau jis nepasako, kaip ištrinti daugybę failų. Kaip galite parašyti kodą tvarkyti kelis failus vienu metu?



Laimei, „Java“ pateikia būdų, kaip tvarkyti rinkmenas. Vienas būdas naudoja masyvąFailasobjektai.

g3722 balta tabletė xanax
import java.io.File; class IHateTxtFiles { public static void main(String args[]) { File folder = new File('.'); for (File file : folder.listFiles()) { if (file.getName().endsWith('.txt')) { file.delete(); } } } }

Daugelyje operacinių sistemų (įskaitant „Windows“, „Mac OS“ ir „Linux“) vienas taškas reiškia dabartinį darbo katalogą: vietą, kurioje programa pradeda ieškoti failų. „Eclipse“ veikiančiai „Java“ programai šis darbinis katalogas yra pagrindinis projekto katalogas.



Pavyzdžiui, įsivaizduokite, kad aukščiau pateiktas kodas yra „Eclipse“ projekte, pavadintame06-16. Tada kietajame diske yra aplankas, pavadintas06-16, kuriame savo ruožtu yra aplankas, pavadintassrc; kuriame savo ruožtu yraIHateTxtFiles.javafailą. Programos darbo katalogas yra06-16kataloge. Taigi, kodas

dantų ištraukimas po priežiūros
folder = new File('.')

daroaplankąkreiptis į pavadintą katalogą06-16.

image0.jpg



Jūs tikriausiai galvojate: projekto šakninis katalogas,06-16yra aplankas, o ne failas. Bet kodas sakoaplankas = naujas failas (.). Kodėl kodekse nesakytaaplankas = naujas aplankas (.)?

Pasirodo, kad dauguma operacinių sistemų ištrina skirtumus tarp aplankų ir failų. „Java“ tikslais dokumentasIHateTxtFiles.javayra failas, aplankas pavadintassrctaip pat yra failo rūšis ir aplankas pavadintas06-16taip pat yra tam tikra byla.

„Java“ kalbaFailasobjektas turi alistFilesmetodu, ir kai paskambinsitefolder.listFiles (), gausite masyvą. Kiekviena masyve saugoma reikšmė yra vienas iš failųsulankstytir.

for (  TypeName variableName  :  RangeOfValues  ) {  Statements  }

„RangeOfValues“ yra masyvas. Masyve yra visi failai, esantys06-16projekto katalogas. Taigi patobulintadėlkilpa paima kiekvieną failą viduje06-16katalogą ir klausia Ar šio failo pavadinimas baigiasi.txt?

10 36 geltona piliulė
if (file.getName().endsWith('.txt'))

Jei konkretaus failo pavadinimas baigiasi.txt, ištrinkite tą failą:

file.delete();

Prieš rodydami šį pavyzdį,06-16kataloge yra pavadinti dalykaisrc,aFile.txt,Išgelbėk maneirxFile.txt.

image1.jpg

Paleidus šį pavyzdį,06-16kataloge vis dar yrasrcirIšgelbėk mane, bet nebėraaFile.txtarbaxFile.txt.

image2.jpg

Paleidus šią programą, „Eclipse“ paketų naršyklėje galite nematyti jokių pakeitimų. Norėdami patikrinti, ar projekto kataloge nebėra.txtfailus, pasirinkite06-16filialas „Package Explorer“. Tada pagrindiniame „Eclipse“ meniu spustelėkite Failas → Atnaujinti.

gg 258 mėlynas futbolas

„Eclipse“ paketų naršyklė atrodo taip, kad joje rodomi visi failai ir aplankai kietajame diske. Bet išvaizda gali apgauti. Kai kurie „Package Explorer“ filialai nėra nei failai, nei aplankai. Kai kurie standžiojo disko failai ir aplankai nerodomi „Eclipse“ paketų naršyklėje.

Be tokių dalykų kaipsrc, kuris rodomas „Eclipse“ paketų naršyklėje, projekto aplanke paprastai yra failai, pavadinti.klasės takasir.projektasir aplankai pavadinti.nustatymaiiresu. Šie papildomi failai ir aplankai paprastai nerodomi „Eclipse“ paketų naršyklėje.

Kai paskambinsitefolder.listFiles (), gautame masyve nėra jokių dalykų, esančiųaplankąkataloge.