Datei aufrufen, umbennen, ablegen

Mahatmas

Mitglied
Hallo zusammen,

hab da ein Problem, bei dem mein begrenztes Wissen wohl nicht mehr ausreicht.

Und zwar möchte ich mit einer Funktion eine Datei auswählen, ihren Namen ändern und dann in einem bestimmten Ordner ablegen.

Hab keinen Plan wie ich das realisieren soll...

Für ein paar Tipps wär ich sehr dankbar...

Gruß,

Mahatmas
 
hallo,

habe da was ändliches gecodet.

Code:
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include <string.h>
#define MAX 20


char *my_itoa(int wert, int laenge) {
   char *ret =(char *) malloc(laenge+1 * sizeof(char));
   int i;

   for(i  =0; i < laenge; i++) {
      ret[laenge-i-1] = (wert % 10) + 48;
      wert = wert / 10;
   }
   ret[laenge]='\0';
   return ret;
}

int main()
{
    DIR         *dip;
    struct dirent  *dit;

    int i = 0, pos = 0, len,x=1;
    char path[MAX]/* = "/alanya"*/, c, prefix[MAX], end[MAX], neu[MAX];
    printf("\n      ----- rename 0.2 -----");
    printf("\n\n / -> root der aktuellen Partition\nauf der die Datei ausgefuehrt wird.\n\n");
    printf("Verzeichnis:\n> ");
    fflush(stdin);
    gets(path);
    printf("Prefix:\n> ");
    fflush(stdin);
    gets(prefix);
    printf("Dateiendung:\n> ");
    fflush(stdin);
    gets(end);
 
   
    if((dip = opendir(path)) == NULL)
    {
        printf("fehler beim oeffnen des verzeichnisses\n\n");
        return 0;
    }
   
    else
    {
        while((dit = readdir(dip)) != NULL)
        {
            if(strcmp(dit->d_name, ".") != 0 && strcmp(dit->d_name, "..") != 0)
            {
                                   
                     strcpy(neu,prefix);
                     strcat(neu, my_itoa(x,5));
                     strcat(neu, end);
                     printf("%s\n",neu);
                     x++;
                                 
                printf("%s\n", dit->d_name);
                rename(dit->d_name,neu);
            }
        }
    }
   
   
    if(closedir(dip) == -1)
    {
        printf("fehler beim schliessen des verzeichnisses\n\n");
        return 0;
    }
   
    printf("\n\n");
    system("PAUSE");
    return 0;
}
 
Ich weiß nicht, ob ich deinen Beitrag richtig verstanden habe...
:confused:
Wohl eher nicht...

Mal ein Bsp. was ich benötige:

Install.pak --> Install.P00
 
Es gibt wohl die Funktion in stdio.h:

int rename(const char *dateiname, const char *neuname);

Hab hierzu ein Bsp. gefunden...

Code:
/* rename example */
#include <stdio.h>

int main ()
{
  int result;
  char oldname[] ="oldname.txt";
  char newname[] ="newname.txt";
  result= rename( oldname , newname );
  if ( result == 0 )
    puts ( "File successfully renamed" );
  else
    perror( "Error renaming file" );
  return 0;
}

Funktioniert sogar :-)
 
Zurück