HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
0204
kaifxrenの使い方がいまいちわからない5未解決


kai

リンク

2014/2/4(Tue) 18:36:10|NO.59661

hspext.dllを使用してファイルの名前を変更したくてfxrenを使用したのですが、うまくいきません。

#include "hspext.as" *filerename filer = "" filerg = "" pos 0,25 : mes "ファイルのフルパスを入力してください↓" input filer,400,25 pos 0,75 : mes "新しいファイルの名前を入力してください↓" pos 0,100 : input filerg,400,25 pos 410,100 : button "OK",*filerenameq stop *filerenameq fxren filer,filerg end
これを実行すると、変数「filer」で入力したパスのファイルが削除されてしまい、名前が変更できません。
どうすればいいでしょうか?

hspext.dllの読み込みは正常にできています。



この記事に返信する


mono

リンク

2014/2/4(Tue) 18:48:03|NO.59662

カレントディレクトリ以外のファイルの名前を変更する場合は変更後のファイル名もフルパスで指定する必要があります。
なぜならfxrenは実はリネームではなくファイルの移動を行う命令だからです。
移動先を同じフォルダの別の名前のファイルにすることでリネームを実現しています。
これはHSPではなくウインドウズの仕様です。



kai

リンク

2014/2/4(Tue) 18:57:14|NO.59663

>なぜならfxrenは実はリネームではなくファイルの移動を行う命令だからです。
そうなんですか!勉強になりました。

では、inputで名前を変更(filergでパスを入力しないでも変更)する方法はありませんか?



mono

リンク

2014/2/4(Tue) 19:20:45|NO.59664

getpathで元のファイル名からパスを抜き出して変更後のファイル名に付け足せばいいのでは。



kai

リンク

2014/2/4(Tue) 19:51:19|NO.59666

では

#include "hspext.as" *filerename filer = "" filerg = "" pos 0,25 : mes "ファイルのフルパスを入力してください↓" input filer,400,25 pos 0,75 : mes "新しいファイルの名前を入力してください↓" pos 0,100 : input filerg,400,25 pos 410,100 : button "OK",*filerenameq stop *filerenameq filergg = getpath (filer,32) filek = getpath (filer,2) fxren filer,filergg+fileeg+filek pos 125,0 : mes "file "+filerg+"
こんな感じでいいでしょうか?



mono

リンク

2014/2/4(Tue) 21:58:22|NO.59671

filergにパスや拡張子がついていないか確認した方がいいのでは。



ONION software Copyright 1997-2021(c) All rights reserved.