Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [C#] Rinominare file immagine

    Ciao a tutti.

    Sto provando a rinominare dei file immagine, circa 2.000, presenti all'interno di una directory (C:\Users\userPC\Desktop\MATT\PROVA\IMG\AW12). Queste immagini sono attualmente rinominate con la seguente struttura:

    area1_area2_area3_area4.jpg

    Vorrei rinominare tali immagini (sovrascrivendole o creando una nuova cartella, non ha importanza) prendendo il campo area2 e area4 formando un nuovo file area2_area4.jpg. Queste aree non hanno un numero di caratteri fisso. Ho scritto il seguente codice ma mi genera un'eccezione dicendomi "impossibile creare un file già esistente".

    codice:
    public void rename(String path)
    {
    	string[] files = System.IO.Directory.GetFiles(path);
    	foreach(string s in files)
    	{
    		string[] ab = s.Split('_');
    		if (ab.Length > 3)
    		{
           			string newName = ab[1] + ab[3];
    			System.IO.File.Move(s, path + newName);
    		}
    	}
    }
    		
    public	void Button1Click(object sender, EventArgs e)
    {
    	rename("C://Users//userPC//Desktop//MATT SUPERDRY//PROVA//IMG//AW12//");
    }
    Mi potreste dare una mano, per favore?

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,325

    Moderazione

    Sposto nel forum "Visual Basic e .NET Framework" dove vengono, appunto, trattati tutti i linguaggio .NET.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Deve essere

    string newName = ab[1] + "_" + ab[3];

    ma per il resto funziona.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Originariamente inviato da oregon
    Deve essere

    string newName = ab[1] + "_" + ab[3];

    ma per il resto funziona.
    Sì, chiedo venia, ho copiato qui il codice prima di implementare questa modifica.
    Ma... sì, a logica funziona, anche a sintassi credo, ma in pratica no! Mi genera un'eccezione dicendomi "impossibile creare un file già esistente".

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Quell'eccezione non ce l'ho. Ovviamente se avessi due file del tipo

    area1_area2_area3_area4.jpg
    area1_areax_area3_areay.jpg

    avrei anch'io (e giustamente) quel messaggio.

    Quindi tutto dipende dall'effettiva lista dei file presenti nella tua cartella.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Scusa Oregon, non ti seguo: anche qualora mi ritrovassi nell'esempio da te riportato, il codice splitta la stringa basandosi sul carattere "_", dunque dovrebbe dividermi dapprima:

    ab[1] = area1
    ab[2] = area2
    ab[3] = area3
    ab[4] = area4

    per poi formarmi area2_area4.jpg, mentre nel secondo caso:

    ab[1] = area1
    ab[2] = areax
    ab[3] = area3
    ab[4] = areay

    formandomi areax_areay.jpg. Comunque questo è un esempio dei file presenti all'interno della mai cartella: http://img21.imageshack.us/img21/6347/codicee.png

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Scusa, pensavo una cosa e ne ho scritta un'altra ... intendevo

    area1_area2_area3_area4.jpg
    areax_area2_areay_area4.jpg

    Comunque questo è un esempio dei file presenti all'interno della mai cartella: http://img21.imageshack.us/img21/6347/codicee.png
    Fai un controllo per vedere se la seconda e quarta parte non sono ripetute in qualche caso. Del resto il messaggio d'errore è chiaro ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Hai ragione, il messaggio parla chiaro, era proprio per quello, hehe! Provando su un campione di 15 immagini, finalmente lo vedo funzionare. Ho applicato una piccola modifica:

    System.IO.File.Copy(s, path + "//NUOVO//" + newName);

    Utima domanda: c'è modo per non far sì che quell'eccezione non mi stoppi il degub ma, eventualmente, salti l'immagine doppia e passi alla successiva?

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Studia le istruzioni

    Try ... Catch
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.