Torna indietro   Hardware Upgrade Forum > Software > Programmazione

AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa
AWS è il principale operatore di servizi cloud al mondo e da tempo parla delle misure che mette in atto per garantire una maggiore sovranità alle organizzazioni europee. L'azienda ha ora lanciato AWS European Sovereign Cloud, una soluzione specificamente progettata per essere separata e distinta dal cloud "normale" e offrire maggiori tutele e garanzie di sovranità
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto
Xiaomi ha portato sul mercato internazionale la nuova serie Redmi Note, che rappresenta spesso una delle migliori scelte per chi non vuole spendere molto. Il modello 15 Pro+ punta tutto su una batteria capiente e su un ampio display luminoso, sacrificando qualcosa in termini di potenza bruta e velocità di ricarica
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR ha finalmente lanciato il suo nuovo flagship: Magic 8 Pro. Lo abbiamo provato a fondo in queste settimane e ve lo raccontiamo nella nostra recensione completa. HONOR rimane fedele alle linee della versione precedente, aggiungendo però un nuovo tasto dedicato all'AI. Ma è al suo interno che c'è la vera rivoluzione grazie al nuovo Snapdragon 8 Elite Gen 5 e alla nuova MagicOS 10
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


AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa AWS annuncia European Sovereign Cloud, il cloud ...
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto Redmi Note 15 Pro+ 5G: autonomia monstre e displ...
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione HONOR Magic 8 Pro: ecco il primo TOP del 2026! L...
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata Insta360 Link 2 Pro e 2C Pro: le webcam 4K che t...
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza Motorola edge 70: lo smartphone ultrasottile che...
Vast prosegue la costruzione della stazi...
Chiarito cosa è successo al satel...
Il TAR annulla Bologna Città 30. ...
Laptop con chip NVIDIA da marzo? Emergon...
Costruito in casa, più veloce di ...
Il nuovo Galaxy Book 6 Pro costa il 25% ...
C'è un boom del mercato dei data ...
OVHcloud annuncia la disponiiblità...
Il Wi-Fi 7 ha un nuovo re: da ASUS arriv...
In arrivo l'auto "Frankenstein"...
Chip NVIDIA H200 in Cina? 'Come vendere ...
iPhone 16 torna super conveniente: ora c...
Offerte Amazon pazzesche: tech, smartpho...
Ubisoft annuncia l'arrivo dei 60 fps per...
Infratel Italia: ecco la nuova mappa del...
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: 23:48.


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