Visualizzazione dei risultati da 1 a 3 su 3

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2016
    Messaggi
    11

    Cambiare le estensioni dei file in una directory.

    Ciao a tutti devo realizzare una console application che mi va a cambiare le estensioni dei file in una directory. Nella directory i file sono tutti di questo tipo :

    abcd.pdf.err e abcdefg.err devo rinominarli in abcd.pdf e abcdefg.ini

    questo è quello che ho fatto, innanzitutto:

    DirectoryInfo dir = new DirectoryInfo("C:\\CartellaPDFERR");

    FileInfo[] allFile = dir.GetFiles("*.err"); // sia pdf che ini
    FileInfo[] filePdfErr = dir.GetFiles("*.pdf.err"); // tutti i pdf
    FileInfo[] fileIniErr = new FileInfo[allFile.Length - filePdfErr.Length];
    int indice = 0;
    string controllo;


    // trova tutti i file .ini.er

    for (int i = 0; i <= allFile.Length-1; i++) {

    bool is_the_same = false;

    for (int j = 0; j <= filePdfErr.Length-1; j++)

    if (allFile[i].Name.Equals(filePdfErr[j].Name)){

    is_the_same = true;

    break;
    }
    if (!is_the_same)

    fileIniErr[indice++] = allFile[i];
    }

    A questo punto punto ho due array contenenti in uno i file .pdf.err e nell'altro i file .err


    // Abbiamo i 2 array file.Pdf.Err[] e fileIni.Err[] con i .pdf.err e .err dobbiamo rinominarli se il filename di .pdf.err contiene.err.


    for (int i = 0; i <= filePdfErr.Length-1; i++) {



    for (int j = 0; j <= fileIniErr.Length-1; j++) {


    controllo = Path.GetFileNameWithoutExtension(fileIniErr[j].Name);

    if (filePdfErr[i].Name.Contains(controllo)) {


    qua non so come andare avanti..... se true devo rinominare il file .err in .ini e il file .pdf.err in .pdf
    Ultima modifica di Q_Zero; 24-01-2016 a 20:34

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Io userei 1 solo array per tutti i file *.err, e poi nel ciclo For controllerei l'estensione del file nell'elemento corrente e lo rinominerei di conseguenza.
    In realtà per i .pdf.err basta togliere l'estensione .err, mentre per gli altri la si deve sostituire con .ini. motivo in più per controllare ogni singolo file

    Per il resto:
    Manipulating files and directories - The complete C# Tutorial
    http://csharp.net-tutorials.com/file...d-directories/

    Use regular expressions to rename files in C#C# Helper
    http://csharphelper.com/blog/2014/09...-pattern-in-c/

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2016
    Messaggi
    11
    grazie, per l'aiuto. Posto la soluzione al problema:

    for (int i = 0; i <= fileIniErr.Length - 1; i++)
    {
    string ini = Path.GetFileNameWithoutExtension(fileIniErr[i].Name);

    for (int j = 0; j <= filePdfErr.Length - 1; j++)
    {
    string pdf = Path.GetFileNameWithoutExtension(filePdfErr[j].Name);

    if ((filePdfErr[j].Name.StartsWith(ini))) // StartsWith verificare se i pdf iniziano con la stessa stringa dei file ini
    {


    File.Move(path + filePdfErr[j].Name.ToString(), path + pdf);


    }

    }


    File.Move(path + fileIniErr[i].Name.ToString(), path + ini + ".ini");

    }


    }

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.