Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming
Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming
Pannello QD-OLED da 32 pollici con risoluzione 4K, frequenza di aggiornamento a 240Hz e tempi di risposta rapidissimi: il Gigabyte MO32U24 evolve il progetto del suo predecessore MO32U e alza ulteriormente l'asticella delle prestazioni. È ancora una volta un monitor indirizzato ai giocatori più esigenti
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
realme 16 5G è un nuovo smartphone con sensore Sony IMX 852 da 50MP sul retro e uno specchio selfie fisico integrato nella camera bar, una prima nel segmento di mercato. Batteria da 6550mAh in un corpo da 8,1mm e 183g, certificazione IP69K e ricarica da 45W completano un pacchetto aggressivo per la fascia media, per uno dei prodotti più interessanti del produttore sul piano commerciale
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Sono ormai definitive le nuove norme del Codice della Strada per i monopattini elettrici. Non solo targa e assicurazione, le regole sono tante e riguardano diversi aspetti, vi spieghiamo come evitare sanzioni che possono essere salate
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 01-07-2006, 13:48   #1
VendeR
Member
 
L'Avatar di VendeR
 
Iscritto dal: Oct 2005
Messaggi: 290
[C] creare una lista dei file presenti in una directory

ciao a tutti! allora come da titolo, vorrei sapere come posso fare in c una lista con tutti i file presenti in una cartella.. per la lista so benissimo come farla, mentre il mio problema sta proprio nei nomi dei file..
io in pratica voglio farmi un programma che rinonimi tutti i file presenti in una cartella con uno stesso formato. e quindi pensavo prima di creare una lista dinamica con tutti i nomi dei file, e poi utilizzando la funzione rename() rinominare tutti i file che non rispettano lo "standard" che interessa a me..
tanto che ci sono.. e se volessi che il programma vada a cercare in una ben definita cartella che gli passo da linea di comando, invece che cercare solo nella cartella in cui lancio il programma, come potrei fare? oppure per fargli analizzare tutti i file presenti in una cartella, ma anche nelle cartelle sottostanti??
grazie in anticipo
__________________
_______________________________________________
AMD Athlon64 3500+, Cooler Master Hyper 6, Asus A8V Deluxe wifi-g Rev2.0, Corsair TwinX-1024 Pc3200XL Platinum, Western Digital Raptor 74GB, Cooler Master CoolDrive 4, Sapphire Radeon 9600XT 256MB, Sound Blaster Audigy Player, Cambridge Soundworks 4.0, Enermax Coolergiant EG485p/ax, Lg Flatron L1952S
---
Acer Aspire 5024
Apple MacBook Pro 13" 2.53GHz
VendeR è offline   Rispondi citando il messaggio o parte di esso
Old 01-07-2006, 13:56   #2
scorpion89
Senior Member
 
L'Avatar di scorpion89
 
Iscritto dal: Mar 2006
Città: Bottegone (PT)
Messaggi: 978
Appoggiarti ai comandi di sistema??
Nn so, parlando sotto *UNIX.
ls > file_presenti
Apri il file in C e poi hai i nomi li inserisci nella lista e fai tutto quello ke vuoi.
Può funzionare?

CIao
__________________
[ Gentoo && Debian && OpenBSD ] Rulez
[irc.rizon.net #linux-world ] [ irc.pocoserio.net #poco-serio ]
TC FUCKKKKKKKKKKKKKKKKKKKKKK | Pronto per il prossimo raduno, Oh YEAHHHH
scorpion89 è offline   Rispondi citando il messaggio o parte di esso
Old 01-07-2006, 14:05   #3
wisher
Senior Member
 
L'Avatar di wisher
 
Iscritto dal: Aug 2005
Messaggi: 2755
concordo, se invece usi windows puoi usare dir /B >elenco.txt
__________________
wisher è offline   Rispondi citando il messaggio o parte di esso
Old 01-07-2006, 17:59   #4
VendeR
Member
 
L'Avatar di VendeR
 
Iscritto dal: Oct 2005
Messaggi: 290
cavolo non ci avevo proprio pensato
grazie per l'info!
solo per complicarmi la vita.. non c'è un modo per farlo fare al programma "dir /B >elenco.txt" (il programma che mi voglio fare per ora mi serve solo su sistemi win..) ??? cioè in modo che sia completamente automatico, io clicco sull'eseguibile e fa tutto lui
spero di non aver chiesto troppo...
__________________
_______________________________________________
AMD Athlon64 3500+, Cooler Master Hyper 6, Asus A8V Deluxe wifi-g Rev2.0, Corsair TwinX-1024 Pc3200XL Platinum, Western Digital Raptor 74GB, Cooler Master CoolDrive 4, Sapphire Radeon 9600XT 256MB, Sound Blaster Audigy Player, Cambridge Soundworks 4.0, Enermax Coolergiant EG485p/ax, Lg Flatron L1952S
---
Acer Aspire 5024
Apple MacBook Pro 13" 2.53GHz
VendeR è offline   Rispondi citando il messaggio o parte di esso
Old 02-07-2006, 09:50   #5
scorpion89
Senior Member
 
L'Avatar di scorpion89
 
Iscritto dal: Mar 2006
Città: Bottegone (PT)
Messaggi: 978
Allora se ho capito bene basta fare:
Codice:
system("dir /B > elenco.txt");
Ciao
__________________
[ Gentoo && Debian && OpenBSD ] Rulez
[irc.rizon.net #linux-world ] [ irc.pocoserio.net #poco-serio ]
TC FUCKKKKKKKKKKKKKKKKKKKKKK | Pronto per il prossimo raduno, Oh YEAHHHH
scorpion89 è offline   Rispondi citando il messaggio o parte di esso
Old 02-07-2006, 23:53   #6
VendeR
Member
 
L'Avatar di VendeR
 
Iscritto dal: Oct 2005
Messaggi: 290
thx
__________________
_______________________________________________
AMD Athlon64 3500+, Cooler Master Hyper 6, Asus A8V Deluxe wifi-g Rev2.0, Corsair TwinX-1024 Pc3200XL Platinum, Western Digital Raptor 74GB, Cooler Master CoolDrive 4, Sapphire Radeon 9600XT 256MB, Sound Blaster Audigy Player, Cambridge Soundworks 4.0, Enermax Coolergiant EG485p/ax, Lg Flatron L1952S
---
Acer Aspire 5024
Apple MacBook Pro 13" 2.53GHz
VendeR è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2006, 09:01   #7
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
se ti interessa saperlo fare in C senza dover fare system o dir
ti mando un esempio.

Ti stampa a video tutti i files (anche link,dir ...) che trova nella cartella
passata come argomento

Codice:
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>


void main( int argc, char **argv )
{   
   DIR *dirp = NULL;

   struct dirent *dp;

   dirp = opendir( argv[1] );

   while (dirp) 
   {
      errno = 0;

      if ((dp = readdir(dirp)) != NULL) 
      {
         puts(dp->d_name);
      } 
      else
      {
         closedir(dirp);
         dirp = NULL;
      }
   }
}
ciao
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 04-07-2006, 13:28   #8
VendeR
Member
 
L'Avatar di VendeR
 
Iscritto dal: Oct 2005
Messaggi: 290
Quote:
Originariamente inviato da trallallero
se ti interessa saperlo fare in C senza dover fare system o dir
ti mando un esempio.

Ti stampa a video tutti i files (anche link,dir ...) che trova nella cartella
passata come argomento

Codice:
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>


void main( int argc, char **argv )
{   
   DIR *dirp = NULL;

   struct dirent *dp;

   dirp = opendir( argv[1] );

   while (dirp) 
   {
      errno = 0;

      if ((dp = readdir(dirp)) != NULL) 
      {
         puts(dp->d_name);
      } 
      else
      {
         closedir(dirp);
         dirp = NULL;
      }
   }
}
ciao
grazie mille per il codice! in effetti pensavo che ci fosse un modo meno "grezzo" che usare la system e redirigere l'output (cosa che però mi pare ben più semplice del codice che hai scritto..)
avrei da chiederti alcune cose riguardo il codice:
- struct dirent da che campi è formata?? c'è name che sarà il nome del file, ma gli altri campi?
- dirp = opendir( argv[1] ); cosa fa

il resto l'ho capito.. graize mille!
__________________
_______________________________________________
AMD Athlon64 3500+, Cooler Master Hyper 6, Asus A8V Deluxe wifi-g Rev2.0, Corsair TwinX-1024 Pc3200XL Platinum, Western Digital Raptor 74GB, Cooler Master CoolDrive 4, Sapphire Radeon 9600XT 256MB, Sound Blaster Audigy Player, Cambridge Soundworks 4.0, Enermax Coolergiant EG485p/ax, Lg Flatron L1952S
---
Acer Aspire 5024
Apple MacBook Pro 13" 2.53GHz
VendeR è offline   Rispondi citando il messaggio o parte di esso
Old 04-07-2006, 13:44   #9
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da VendeR
- struct dirent da che campi è formata?? c'è name che sarà il nome del file, ma gli altri campi?
Secondo la documentazione su Linux (man 3 readdir):
According to POSIX, the dirent structure contains a field char d_name[] of unspecified size, with at most NAME_MAX characters preceding the terminating null character. Use of other fields will harm the portability of your programs. POSIX 1003.1-2001 also documents the field ino_t d_ino as an XSI extension.
Quote:
Originariamente inviato da VendeR
- dirp = opendir( argv[1] ); cosa fa
Apre lo "stream" della directory.
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 04-07-2006, 13:46   #10
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da VendeR
- struct dirent da che campi è formata?? c'è name che sarà il nome del file, ma gli altri campi?
Codice:
struct dirent
{
   ino_t           d_ino;          /* "inode number" of entry */
   off_t           d_off;          /* offset of disk directory entry */
   unsigned short  d_reclen;       /* length of this record */
   char            d_name[1];      /* name of file */
};
Quote:
Originariamente inviato da VendeR
- dirp = opendir( argv[1] ); cosa fa
dirp é una struttura di tipo DIR:
Codice:
typedef struct
{
   int     dd_fd;          /* file descriptor */
   int     dd_loc;         /* offset in block */
   int     dd_size;        /* amount of valid data */
   char    *dd_buf;        /* directory block */
} DIR;               /* stream data from opendir() */
opendir é una funzione che "apre" una directory in lettura
e restituisce l'informazione.
argv[1] é il primo parametro che passi all'eseguibile.
se hai un file di nome "pippo.exe" che stampa il primo
parametro a video, nel codice trovi:
Codice:
   printf( argv[1] );
Quote:
Originariamente inviato da VendeR
il resto l'ho capito.. graize mille!
obligado
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 04-07-2006, 14:00   #11
VendeR
Member
 
L'Avatar di VendeR
 
Iscritto dal: Oct 2005
Messaggi: 290
ri-grazie
appena ho tempo provo, poi se ho qualche casino ti chiederò ancora
ciau
__________________
_______________________________________________
AMD Athlon64 3500+, Cooler Master Hyper 6, Asus A8V Deluxe wifi-g Rev2.0, Corsair TwinX-1024 Pc3200XL Platinum, Western Digital Raptor 74GB, Cooler Master CoolDrive 4, Sapphire Radeon 9600XT 256MB, Sound Blaster Audigy Player, Cambridge Soundworks 4.0, Enermax Coolergiant EG485p/ax, Lg Flatron L1952S
---
Acer Aspire 5024
Apple MacBook Pro 13" 2.53GHz
VendeR è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming Gigabyte MO32U24 OLED: il 4K a 240Hz su un panne...
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh Recensione realme 16 5G: lo smartphone con Selfi...
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni Come rispettare tutte le nuove regole per i mono...
DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta DLSS 4.5: con Dynamic Frame Generation e MFG 6X ...
Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere) Plaud NotePin S, il registratore IA si fa indoss...
Infineon apre il 2 luglio lo Smart Power...
Crimson Desert non si ferma: il gioco di...
Con iOS 27 l'iPhone si ripristina da sol...
Visa porta i pagamenti in ChatGPT: gli a...
OpenAI valuta un 'drastico' taglio dei p...
Il MacBook con display touch si far&agra...
Google promette di restituire più...
Quattro monitor 4K, doppia LAN 2.5G e Wi...
ROG Equalizer, il cavo 'salva-GPU': prim...
Falla critica CVSS 9.8 in Oracle PeopleS...
Microsoft accelera su Edge: aggiornament...
AMD ha corretto un bug da 10.000 dollari...
Vertiv: data center, la corsa dell’IA sp...
Siri non diventerà la tua fidanzata virt...
Prezzi in crescita del 200% e forniture ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 00:30.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v