Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Polestar 3 Performance, test drive: comodità e potenza possono convivere
Polestar 3 Performance, test drive: comodità e potenza possono convivere
Abbiamo passato diversi giorni alla guida di Polestar 3, usata in tutti i contesti. Come auto di tutti i giorni è comodissima, ma se si libera tutta la potenza è stupefacente
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026
In occasione del proprio Architecture Deep Dive 2025 Qualcomm ha mostrato in dettaglio l'architettura della propria prossima generazione di SoC destinati ai notebook Windows for ARM di prossima generazione. Snapdragon X2 Elite si candida, con sistemi in commercio nella prima metà del 2026, a portare nuove soluzioni nel mondo dei notebook sottili con grande autonomia
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
DJI Mini 5 Pro porta nella serie Mini il primo sensore CMOS da 1 pollice, unendo qualità d'immagine professionale alla portabilità estrema tipica di tutti i prodotti della famiglia. È un drone C0, quindi in un peso estremamente contenuto e che non richiede patentino, propone un gimbal rotabile a 225 gradi, rilevamento ostacoli anche notturno e autonomia fino a 36 minuti. Caratteristiche che rendono il nuovo drone un riferimento per creator e appassionati
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 01-07-2006, 14: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, 14: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, 15: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, 18: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, 10: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 03-07-2006, 00: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, 10: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, 14: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, 14:44   #9
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
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, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 04-07-2006, 14: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, 15: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


Polestar 3 Performance, test drive: comodità e potenza possono convivere Polestar 3 Performance, test drive: comodit&agra...
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026 Qualcomm Snapdragon X2 Elite: l'architettura del...
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice Recensione DJI Mini 5 Pro: il drone C0 ultra-leg...
ASUS Expertbook PM3: il notebook robusto per le aziende ASUS Expertbook PM3: il notebook robusto per le ...
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo Test ride con Gowow Ori: elettrico e off-road va...
Grazie a VLT è stata misurata dir...
Blue Origin annuncia un aerofreno ripieg...
Blue Origin annuncia una nuova versione ...
LG UltraFine evo 6K: il primo monitor al...
DJI cambia direzione: investe in Elegoo ...
Black Friday Narwal 2025: risparmi da ca...
Phishing evoluto contro Apple ID: caso f...
Prestazioni in discesa nei giochi? NVIDI...
Addio ai banner dei cookie? L'UE spinge ...
Le offerte Black Friday per gli smartpho...
Il controllo qualità degli iPhone...
Qualcomm Snapdragon X Elite vola con il ...
A2RL Season 2: storia, innovazione e sor...
Core Ultra Series 3: Intel conferma l'ev...
Black Friday Amazon: la GeForce RTX 5070...
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: 03:04.


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