FileRename Problem mit File aus FileOpenDialog

  • Moin.

    Ich wähle mit den folgenden Zeilen eine Datei aus. Nehmen wir mal die vorher.abc als Beispiel

    Jetzt möchte ich die ausgewählte Datei vorher.abc in nachher.123 (Beispielname) umbenennen und mit diesem Dateinamen dann bei $sFileRead weiter arbeiten.

    FileRename hat autoit ja nicht und mit FileMove bekomme ich es so nicht hin.

    ...... Lieben Gruß, ........
    ...........
    Alina ............

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Ich habe die Deutsche Hilfe auf meinem PC und
    OrganizeIncludes ist beim Scripten mein bester
    Freund. Okay?

  • FileMove

    Nimm lieber

    1. FileCopy

    2. (wenn die Quelle nicht mehr gebraucht wird) FileDelete

    die ausgewählte Datei vorher.abc in nachher.123 (Beispielname) umbenennen und mit diesem Dateinamen dann bei $sFileRead weiter arbeiten

    Was ist der Sinn? Wenn du eine andere Datei, als die ausgewählte verarbeiten willst (diese muss demzufolge bereits existieren!), dann lass doch diese Datei auswählen.

    Oder ist die ausgewählte ein Template und soll als Arbeitsdokument demzufolge einen anderen Namen erhalten? In diesem Fall:

    AutoIt
    $selectedTemplate = FileOpenDialog(....)
    $workingFile = "Working\Document\Path"
    FileCopy($selectedTemplate, $workingFile, $FC_CREATEPATH)


    FileRename hat autoit ja nicht

    Kannst du dir schnell erstellen

    AutoIt
    Func _FileRename($_sSource, $_sDestination, $_bSourceDelete=True)
        If Not FileExists($_sSource) Then Return SetError(1,0,0) ; $_sSource not exists
        If Not FileCopy($_sSource, $_sDestination, $FC_CREATEPATH) Then
            Return SetError(2,0,0) ; $_sDestination exists
        Else
            If $_bSourceDelete Then FileDelete($_sSource)
        EndIf
        Return 1
    EndFunc
  • mit FileMove bekomme ich es so nicht hin.

    Musst halt den Pfad vorher splitten - dann bist du entsprechend flexibel:

    AutoIt
    #include <FileConstants.au3>
    #include <File.au3>
    
    $File = FileOpenDialog("Wähle eine Datei zum einlesen ...", @ScriptDir, "Textdatei (*.txt)|alle Dateien(*.*)", BitOR($FD_FILEMUSTEXIST, $FD_MULTISELECT))
    
    Local $sDrive, $sDir, $sFileName, $sExt
    _PathSplit($File, $sDrive, $sDir, $sFileName, $sExt)
    
    Filemove($File, $sDrive & $sDir & "nachher.123")


    Edit:

    Nimm lieber

    1. FileCopy

    2. (wenn die Quelle nicht mehr gebraucht wird) FileDelete

    Was ist für dich der Grund es so zu machen und nicht einfach mit FileMove()?
    Auf den ersten Blick sehe ich da nur Nachteile und keinen Vorteil - irgendwas übersehe ich vielleicht?

  • Danke allen.

    ...... Lieben Gruß, ........
    ...........
    Alina ............

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Ich habe die Deutsche Hilfe auf meinem PC und
    OrganizeIncludes ist beim Scripten mein bester
    Freund. Okay?