バグ: 末尾が半角ドット2つであるカードを取得した場合に画像ファイル保存時にエラー
お疲れ様です。
今回は報告とお尋ねで誠に恐縮です。
伊礼様「流れついたもの」で技能カード「...See...
」を入手後クリアすると以下のエラーログが出力されます。私家版ビルドのためビルド日時の不一致はご容赦ください。
Version : 5.1 (64-bit) / 2022-12-13 20:47:13
DateTime: 2023-09-23 22:20:06
Traceback (most recent call last):
File ".\cw\util.py", line 2257, in _write_files
FileNotFoundError: [Errno 2] No such file or directory: 'Data/Temp/Local/Yado/(宿名)/Yado/(宿名)/Material/SkillCard/...See.../...See....bmp.cardwirthpy_temp'
セーブしても本画像ファイルはディレクトリを含めて作成されていません。画像がないだけで使用に支障はないです。
そこで調査をしましたところ、表題に示した手順で再現する事を確認しました。
半角ドットで終わるカード名を内部で保存する際に末尾に適当な文字を追加するのはテストを要するにせよ(たぶん)簡単に実装できますが、
(threads.py
の6044行目の前に書き加えるだけでOKかどうかですね)
これに考慮漏れがあるかご教示いただけましたら幸甚です。
末尾の半角ドットが1つの場合は正常動作を確認しましたが、
- Windows上でのパスは「
~~/ディレクトリ名/~~.bmp
」 - xml上でのパスは「
~~/ディレクトリ名./~~.bmp
」
となり相違していますが、動作に問題ありません。実際、コマンドプロンプトで「ディレクトリ名.
」にcdをかましても「ディレクトリ名
」に遷移します。
何なら「ディレクトリ名..
」にcdかましても「ディレクトリ名
」に遷移します。
軽くぐぐりましたが、Windowsの仕様による制約のため末尾が半角ドットのフォルダは操作できないとか。
https://blog.halpas.com/archives/15368
内容が乱雑で申し訳ございませんが、ご確認をお願いいたします。
Comments (6)
-
repo owner -
repo owner - changed status to open
-
reporter -
repo owner 問題無いと思います。マージしました。
助かりました。ありがとうございます。
-
@k4nagatsuki
本件はイシュー発行者によるプルリクがマージされており、クローズ可能です。 -
repo owner - changed status to resolved
ありがとうございます。クローズします。
- Log in to comment
ご報告ありがとうございます。
.
の扱いは問題ですね。Windowsのパスの仕様はもちろん、拡張子の付け替えでも不具合が発生する事が容易に想像できます。check_filename
関数でパスに置くと問題の起こりそうな文字を置換しているのですが、ここに加えればおそらく解決できると思います。余裕がありましたらPull Requestしていただけるとありがたいです。