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!
Dateityp umbennen?
-
- [ offen ]
-
m3hm3t -
23. Mai 2008 um 17:27 -
Geschlossen -
Erledigt
-
-
- Offizieller Beitrag
FileMove ist genau richtig. Probier es aus!
Mega
-
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")
[/autoit] [autoit][/autoit] [autoit]
$item = GUICtrlCreateMenuItem("Datei Öffnen...", $menu)
$item2 = GUICtrlCreateMenuItem("Beenden", $menu)GUICtrlCreateGroup("Datei öffnen", 10, 10, 480, 60)
[/autoit] [autoit][/autoit] [autoit]
$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)GUISetState()
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit]
$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
WEndAber so funktioniert es ja nicht, kann es bitte einer korigieren?
-
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()
[/autoit]
$img = _GDIPlus_ImageLoadFromFile($filename)
_GDIPlus_ImageSaveToFile($img,$filename & ".bmp")
_GDIPlus_ImageDispose($img)
_GDIPlus_Shutdown(9 -
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>
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#include <WindowsConstants.au3>GUICreate("TEST", 500, 400)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]$menu = GUICtrlCreateMenu("Datei")
[/autoit] [autoit][/autoit] [autoit]
$item = GUICtrlCreateMenuItem("Datei Öffnen...", $menu)
$item2 = GUICtrlCreateMenuItem("Beenden", $menu)GUICtrlCreateGroup("Datei öffnen", 10, 10, 480, 60)
[/autoit] [autoit][/autoit] [autoit]
$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)GUISetState()
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]
$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
WEndFunc JpgToBmp($filename)
[/autoit] [autoit][/autoit] [autoit]; GDI+ initialisieren.
[/autoit] [autoit][/autoit] [autoit]
_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()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 GrafikformatDas ist dann natürlich schon etwas aufwendiger.
Bei Deinem VW musste ja dann auch einen neuene Motor einbauen lassen. -