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


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
0908
べなりあ名前の長いファイルをdirlistで取得できないのですがどうすればいいでしょうか3解決


べなりあ

リンク

2012/9/8(Sat) 03:53:44|NO.49221

調べてもなかなか答えが見つからないので質問させて頂きます。
よろしくお願いします。

dirlist命令でファイル一覧を取得したかったのですが、
ファイル名が260バイト以上になるとそのファイルだけリストアップしてくれません。
HSP側で制限が何か掛かってるのかと思い、WindowsAPI側からやってみたのですが、
そのWindowsAPIのFindFirstFileやFindNextFileも同様の結果でした。
MSDN等を読んだ限り、返り値の構造体のファイル名が260バイトなので
少なくともFindFirstFile周辺のAPIでは出来ないようでした…。

どうすれば260文字以上のファイル名をファイル一覧として取得出来るでしょうか。
どなたかご教授お願いいたします。



この記事に返信する


fortunehill

リンク

2012/9/8(Sat) 04:43:09|NO.49222

/*ご参考*/
/*ファイルシステムで異なるのですがNTFSに255+α文字以上のファイル名が存在する?*/
ttp://en.wikipedia.org/wiki/Comparison_of_file_systems#Limits

/*パスの最長が33727の件のご参考*/
ttp://q.hatena.ne.jp/1334196325



べなりあ

リンク

2012/9/8(Sat) 22:58:17|NO.49243

ご回答ありがとうございます。

正直、ファイルシステム周りの知識が不足しているのでよく分からないのですが、
とりあえず私が現在使っているWindows7では拡張子含め260文字(半角全角問わず)まで
ファイル名として使う事が出来ています。

教えて頂いたページのVBスクリプトがかなり参考になりそうですね。
VB…というか、COMオブジェクトを扱うのは全く初めてなので苦戦していますが…

無事動作が確認出来たら、解決としたいと思います。
取り急ぎお返事まで。



べなりあ

リンク

2012/9/9(Sun) 03:05:28|NO.49250

何とかなりました!
無事取得出来たので解決と致します。

解決方法ですが、VBScriptでのFor Eachで各ファイルを取得する処理あたりが
HSPで表現出来なかったので、ScriptControlを使ってVBScript直書きという
若干荒業な感じで取得しました。

これで作りたいプログラムが進みます。
ご回答、ありがとうございました!



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