» »

š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.

kuall ::

Blisk ::

kuall je izjavil:

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.
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.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

C# Branje iz datoteke

Oddelek: Programiranje
5976 (785) boogie_xlr
»

[C#] Deserializacija

Oddelek: Programiranje
181859 (1462) Cvenemir
»

branje iz datoteke c#

Oddelek: Programiranje
141641 (1370) darkolord
»

[c] Enaki datoteki

Oddelek: Programiranje
71032 (892) Spura
»

Ime Priimek v Ime_Priimek (strani: 1 2 )

Oddelek: Programska oprema
554977 (3937) Doman

Več podobnih tem