Forum » Programiranje » štetje datotek
štetje datotek
Blisk ::
Kako bi s preproso batch skripto preštel število datotek v mapi "posreduj", ki so velike 0 (nula) in če je teh datotek več kot 5, potem se pokaže obvestilo "NAPAKA v sistemu". V tej mapi posreduj so datoteke raznoraznih velikosti, ampak jaz bi rad samo vedel katere so velike 0 (nula) bajtov in da mi jih prešteje in če jih je več kot 5 mi izpiše obvestilo.
Blisk ::
C#
https://stackoverflow.com/questions/468...
na tem linku so skripte kako izračunati velikost mape.
Jaz pa rabim prešteti koliko je datotek v mapi z velikostjo nič.
Zgodovina sprememb…
- predlagalo izbris: BivšiUser ()
kuall ::
Sem napisal programček, ki šteje prazne datoteke v mapi in podmapah, kjer se programček nahaja.
Če rabiš exe in če mi zaupaš, da ti ne bom poslal virusa ti ga lahko pošljem. Al pa zdownloadaj Visual Studio.
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CountFilesWithSize0 { class Program { static void Main(string[] args) { CountFilesWithSize0(Path.GetDirectoryName (System.Reflection.Assembly.GetEntryAssembly().Location)); } private static void CountFilesWithSize0 (string dir) { Console.WriteLine("Pregledujem mapo " + dir + " in njene podmape..."); int numFiles0Size = 0; var allFiles = GetAllFiles(dir, "*.*"); //int percDone = 0; //int prevPercDone = -1; //int numAllFiles = allFiles.Count (); int i = 0; foreach (string fileName in allFiles) { /*percDone = Convert.ToInt32 (Math.Round (i / (double) numAllFiles, 0)); if (percDone != prevPercDone) { Console.Write(percDone.ToString() + "% "); prevPercDone = percDone; }*/ FileInfo fi = new FileInfo(fileName); if (fi.Length == 0) { numFiles0Size++; //Console.WriteLine(fi.FullName); } } //Console.WriteLine("100%"); /*DirectoryInfo d = new DirectoryInfo(dir); FileInfo[] fis = d.GetFiles("*.*", SearchOption.AllDirectories); foreach (FileInfo fi in fis) { if (fi.Length == 0) { numFiles0Size++; //Console.WriteLine(fi.FullName); } }*/ Console.WriteLine("Število praznih datotek: " + numFiles0Size.ToString () + " od " + allFiles.Count ().ToString()); if (numFiles0Size > 5) Console.WriteLine("NAPAKA!"); Console.ReadLine(); } static IEnumerable<String> GetAllFiles(string path, string searchPattern) { return System.IO.Directory.EnumerateFiles(path, searchPattern).Union( System.IO.Directory.EnumerateDirectories(path).SelectMany(d => { try { return GetAllFiles(d, searchPattern); } catch (UnauthorizedAccessException e) { return Enumerable.Empty<String>(); } })); } } }
Če rabiš exe in če mi zaupaš, da ti ne bom poslal virusa ti ga lahko pošljem. Al pa zdownloadaj Visual Studio.
Zgodovina sprememb…
- spremenilo: kuall ()
srus ::
Sicer ne omenjaš OS, ki bi ti poganjal batch skripto, ampak če je to Linux potem bi šlo nekako takole:
find posreduj -type f -empty | wc -l
Daj rezultat zgornjega izraza kot pogoj v if [ -gt ] stavek.
find posreduj -type f -empty | wc -l
Daj rezultat zgornjega izraza kot pogoj v if [ -gt ] stavek.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | C# Branje iz datotekeOddelek: Programiranje | 976 (785) | boogie_xlr |
» | [C#] DeserializacijaOddelek: Programiranje | 1859 (1462) | Cvenemir |
» | branje iz datoteke c#Oddelek: Programiranje | 1641 (1370) | darkolord |
» | [c] Enaki datotekiOddelek: Programiranje | 1032 (892) | Spura |
» | Ime Priimek v Ime_Priimek (strani: 1 2 )Oddelek: Programska oprema | 4976 (3936) | Doman |