Risposte:
Nota: supponendo che NTFS, poiché nessuno nella propria mente corretta userebbe FAT per nient'altro che chiavette USB o schede di memoria, figuriamoci su un server (ok, quel pensiero fa paura).
Sì, c'è un limite. Memorizzare più file che particelle nell'universo può rivelarsi poco pratico. Tuttavia, il limite effettivo è molto più basso.
NTFS ha un massimo di 4.294.967.295 (2 32 - 1) file per volume . Alcuni di questi sono già utilizzati dal file system stesso e anche la cartella deve essere considerata come file.
30.000 non sono così tanti file, in realtà. Ma Microsoft consiglia di disattivare la generazione automatica di nomi brevi compatibili con DOS se passi oltre 300.000 poiché trovare un nome breve univoco diventa difficile.
Non esiste un limite pratico per le dimensioni combinate di tutti i file in una cartella, anche se potrebbero esserci limiti al numero di file in una cartella. Ancora più importante, ci sono limiti alle dimensioni dei singoli file che dipendono dal filesystem che stai usando sul tuo disco rigido. (Il "filesystem" non è altro che la specifica di come i file vengono archiviati sul disco.)
Analizziamo questo per file system:
• FAT aka FAT16
FAT, per la tabella di allocazione dei file, è il successore del file system FAT12 originale fornito con MS-DOS molti, molti anni fa.
◦ Dimensione massima del disco: 4 gigabyte
◦ Dimensione massima del file: 4 gigabyte
◦ Numero massimo di file sul disco: 65.517
◦ Numero massimo di file in una singola cartella: 512 (se ricordo bene, la cartella principale "/" aveva un limite inferiore di 128).
• FAT32
"Non esiste un limite pratico per le dimensioni combinate di tutti i file in una cartella, sebbene possano esserci limiti al numero di file in una cartella." FAT32 è stato introdotto per superare alcune delle limitazioni di FAT16.
◦ Dimensione massima del disco: 2 terabyte
◦ Dimensione massima del file: 4 gigabyte
◦ Numero massimo di file sul disco: 268.435.437
◦ Numero massimo di file in una singola cartella: 65.534
• NTFS
NTFS, o "New Technology File System" introdotto con Windows NT, è un file system completamente ridisegnato.
◦ Dimensione massima del disco: 256 terabyte
◦ Dimensione massima del file: 256 terabyte
◦ Numero massimo di file sul disco: 4.294.967.295
◦ Numero massimo di file in una singola cartella: 4.294.967.295
Nota che quando dico "disco" sopra, sto davvero parlando di dischi "logici", non necessariamente fisici. Nessuno crea un'unità disco da 256 terabyte, ma utilizzando NTFS è possibile trattare un array di unità disco come un singolo disco logico. Presumibilmente se ne hai abbastanza, puoi costruire un enorme disco logico.
Si noti inoltre che la limitazione di 256 terabyte di NTFS potrebbe essere semplicemente una limitazione dell'implementazione: ho letto che il formato NTFS può supportare dischi fino a 16 exabyte (16 volte 1.152.921.504.606.846.976 byte).
È possibile avere solo un massimo di 65535 file nella directory temp di Windows, altrimenti il metodo .Net Framework Path.GetTempFileName smetterà di funzionare. L'eliminazione di file temporanei precedenti gli consentirà di funzionare nuovamente fino a quando non verrà raggiunto nuovamente il limite
Vedi: Path.GetTempFileName
Se stai usando NTFS, allora no, non ci sono limiti reali.
Le prestazioni ne risentiranno in altri modi: tentare di aprire una cartella con 30k sottocartelle richiederà molto tempo.
FATXX ha dei limiti.
Altri file system moderni, nessun limite reale.