Dateityp umbennen?

  • Hallo zusammen, ich habe da eine frage ist es möglich mit einer Funktion eine Datei umzubenennen?
    Habe mal so im forum rumgeschaut und nichts genaues gefunden außer das "FileMove", aber das verschiebt ja nur die dateien und tut sie ja nur vom Namen her umbenennen.
    Kann mir da einer helfen, DANKE!

  • Ok danke dann habe ich bloß was flasches geschrieben, weil ich möchte das ich es von FileOpenDialog die ausgewählte datei mit FileMove umbenennen möchte, aber weiß ich nicht genau.
    Ich habe es mal so geschrieben:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    GUICreate("TEST", 500, 400)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $menu = GUICtrlCreateMenu("Datei")
    $item = GUICtrlCreateMenuItem("Datei Öffnen...", $menu)
    $item2 = GUICtrlCreateMenuItem("Beenden", $menu)

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlCreateGroup("Datei öffnen", 10, 10, 480, 60)
    $button = GUICtrlCreateButton("Durchsuchen...", 370, 30, 100, 25)
    $button2 = GUICtrlCreateButton("Umbenennen", 200, 320, 100, 25)
    $input = GUICtrlCreateInput("", 20, 30, 330, 25)
    $radio = GUICtrlCreateRadio("JPG -> BMP", 20, 100)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GUIGetMsg()

    Switch $msg

    Case $GUI_EVENT_CLOSE
    Exit
    Case $button
    $open = FileOpenDialog("Datei öffnen...", @DesktopDir, "JPG (*.jpg*)")
    GUICtrlSetData($input, $open)
    Case $item
    $open = FileOpenDialog("Datei öffnen...", @DesktopDir, "JPG (*.jpg*)")
    GUICtrlSetData($input, $open)
    Case $item2
    Exit
    Case $button2
    If GUICtrlRead($radio) = $GUI_CHECKED Then
    FileMove(GUICtrlRead($input), @DesktopDir & ".bmp")
    EndIf
    EndSwitch

    WEnd

    [/autoit]

    Aber so funktioniert es ja nicht, kann es bitte einer korigieren?

    10 Mal editiert, zuletzt von m3hm3t (23. Mai 2008 um 18:16)

  • Das geht doch :) die date heißt dann eben Datei.jpg.bmp
    ABER DABEI WIRD DER DATEITYP NICHT GEÄNDERT.
    (Ja, die Endung schon, aber nicht der inhalt der Datei, und bmp und jpg sind unterschiedlich aufgebaut.)
    Wenn du aus einer .JPG eine echte .BMP machen willst, musst du so was machen:

    Spoiler anzeigen
    [autoit]

    _GDIPlus_Startup()
    $img = _GDIPlus_ImageLoadFromFile($filename)
    _GDIPlus_ImageSaveToFile($img,$filename & ".bmp")
    _GDIPlus_ImageDispose($img)
    _GDIPlus_Shutdown(9

    [/autoit]
  • Danke für deine antwort.

    Hmm... weis nicht genau wie du das meinst, aber es funktioniert nicht mir meiner schreibweise.

    Deine schreibweise verstehe ich leider noch nicht und möcht nicht gleich so weit gehen das ich nicht mal weiß was ich schreibe.

    Kannst du es in meiner schreibweise korigieren, das wäre echt nett.

  • Moin,

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    GUICreate("TEST", 500, 400)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $menu = GUICtrlCreateMenu("Datei")
    $item = GUICtrlCreateMenuItem("Datei Öffnen...", $menu)
    $item2 = GUICtrlCreateMenuItem("Beenden", $menu)

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlCreateGroup("Datei öffnen", 10, 10, 480, 60)
    $button = GUICtrlCreateButton("Durchsuchen...", 370, 30, 100, 25)
    $button2 = GUICtrlCreateButton("Umbenennen", 200, 320, 100, 25)
    $input = GUICtrlCreateInput("", 20, 30, 330, 25)
    $radio = GUICtrlCreateRadio("JPG -> BMP", 20, 100)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GUIGetMsg()

    Switch $msg

    Case $GUI_EVENT_CLOSE
    Exit
    Case $button
    $sJpegs = FileOpenDialog("Datei öffnen...", @DesktopDir, "JPG (*.jpg*)", 7)
    GUICtrlSetData($input, $sJpegs)
    Case $item
    $sJpegs = FileOpenDialog("Datei öffnen...", @DesktopDir, "JPG (*.jpg*)", 7)
    GUICtrlSetData($input, $sJpegs)
    Case $item2
    Exit
    Case $button2
    If GUICtrlRead($radio) = $GUI_CHECKED Then
    ;JpgToBmp($sJpegs)
    EndIf
    EndSwitch

    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func JpgToBmp($filename)

    [/autoit] [autoit][/autoit] [autoit]

    ; GDI+ initialisieren.
    _GDIPlus_Startup()

    ; falls mehrere Dateien mit FileOpenDialog ausgewählt wurden ...
    If StringInStr($filename, '|') Then
    $aFilenames = StringSplit($filename, '|')

    For $i = 1 To $aFilenames[0]
    ; Handle zu Imageobjekt erhalten.
    $hImg = _GDIPlus_ImageLoadFromFile($filename)
    ; Imageobjekt als Bitmapdatei abspeichern.
    _GDIPlus_ImageSaveToFile($hImg,$filename & ".bmp")
    ; Imageobjekt auflösen.
    _GDIPlus_ImageDispose($hImg)
    Next
    ; ... falls nicht.
    Else
    ; Handle zu Imageobjekt erhalten.
    $hImg = _GDIPlus_ImageLoadFromFile($filename)
    ; Imageobjekt als Bitmapdatei abspeichern.
    _GDIPlus_ImageSaveToFile($hImg,$filename & ".bmp")
    ; Imageobjekt auflösen.
    _GDIPlus_ImageDispose($hImg)
    EndIf
    ; GDI+ beenden.
    _GDIPlus_Shutdown()

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit]


    Gruß
    Greenhorn


  • Oh man das ist ja echt kompliziert auf einem blick, nur für die datei umbenennung.
    Hey aber DANKE, für deine mühe.

  • wenn Du aus einem VW Benziner einen VW Diesel machen willst hast Du auch 2 Möglichkeiten:

    1. Möglichkeit: Du "klebst" am Heck das Diesel-Logo hin und fährst weiter einen VW Benziner (und tankst auch Benzin...)
    2. Möglichkeit: Du bringst Deinen VW Benziner in die Werkstatt und sagst: Macht mir daraus einen Diesel...

    Da reicht es doch auch nicht am Heck einen anderen Namen "aufzukleben", oder?

    Spaß beiseite.

    Zitat

    ... nur für die datei umbenennung.

    Entweder du willst für einen bestimmten Dateityp nur die Endung ändern,
    dann ist das mit FileMove schon richtig ( Aufkleber am Heck), ( z.B. .txt --> .bat )
    Die dementsprechend registrierten Anwendungen müssen natürlich mit dem Dateiinhalt zurechtkommen,
    ansonsten macht das umbenennen keinen Sinn.

    oder du willst den Inhalt ändern. ( z.B. .bmp --> .jpg)
    .bmp = unkomprimiertes Grafikformat
    .jpg = komprimiertes Grafikformat

    Das ist dann natürlich schon etwas aufwendiger.
    Bei Deinem VW musste ja dann auch einen neuene Motor einbauen lassen. 8)

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)