• ベストアンサー

ファイルがないのにファイルがある??

訳のわからないタイトルをクリックしていただいてありがとうございます。 しかしながら、本当にファイルが見当たらないのにOSはファイルがあるからその名前には変更できない!と言います・・・もちろん、すべてのファイルを表示する設定にして隅から隅まで目を凝らして探しましたがそんなファイルはありません。 本題ですが、VBでランダムアクセスファイルを作成しています。ファイル名は「com1.ran」です。このファイル名を指定してファイルを開こうとすると、「プロシージャの呼出し、または引数が不正です」のエラーが発生します。 おかしいなと思い、試したところ多分拡張子は関係なく、「com1」~「com9」と名前のつくファイルはVBでなくても作成できないことがわかりました。ちなみに。「com」と「com11(以上)」のファイルは作成できます。 会社、自宅合計12台のPCで試しましたが、すべて作成できませんでした。なお、OSはすべてXP(HOME PRO含む)です。 これは、OSの制限なのでしょうか。それとも不具合でしょうか。皆様のPCでは作成できるのかどうか教えていただきたいと思います。

質問者が選んだベストアンサー

  • ベストアンサー
  • edomin
  • ベストアンサー率32% (327/1003)
回答No.1

WindowsやMS-DOSでは、すでに予約されたファイル名があります。 例) CON, PRN, AUX, CLOCK$, NUL COM0, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9 LPT0, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9 これらのファイル名を付けたファイルは、作成することが出来ません。仕様です。

xiaolong_goo
質問者

お礼

早速のお返事ありがとうございます。 やはり言語でもよくある「予約語」なんですね・・・ それなら、OSも「予約語は使えません!」とかって言ってくれればいいのに・・・・なんて思うのは私だけでしょうか。

その他の回答 (4)

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.5

http://msdn2.microsoft.com/en-us/library/aa365247.aspx COM1~COM9は、RS-232Cポートに割り当てられた「予約ファイル名(予約デバイス名)」です。拡張子が付いた名前も使用できません。 それ以外には、 CON PRN NUL AUX CLOCK$ LPT1~LPT9 があります。

参考URL:
http://msdn2.microsoft.com/en-us/library/aa365247.aspx
xiaolong_goo
質問者

お礼

お返事ありがとうございます。 なぜ拡張子を付けたものまで使えなくしているのか意味不明で困ってしまいました。 皆様大変ありがとうございました。心苦しいのですが、ポイントは返答順に付けさせていただきます。

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.4

COM1~COM9はWindows(元々はMS-DOS)で予約されているデバイスファイル名です。拡張子がついてもファイルが作成できないとは知りませんでしたが。 http://osaka.cool.ne.jp/cyberidoc/cmd/167.html

xiaolong_goo
質問者

お礼

お返事ありがとうございます。 拡張子で分ければいいのに・・・なぁ~んて思ってしまうのは私だけでしょうか。

回答No.3

違うかもですがシリアルポートを com1、com2… とXPは表現しているので出来ないのかも。 こうゆうのはよくあるので制限とあきらめて 別名にすることをおすすめします。

xiaolong_goo
質問者

お礼

お返事ありがとうございます。 予約語恐るべし・・・です。

  • precog
  • ベストアンサー率22% (966/4314)
回答No.2

comというファイル名は、comポート (シリアルインターフェース) のためにリザーブされてたと思います。 comがOKでcom1がダメな理由は正確にはわかりませんが、OSの制限ってことですね。

xiaolong_goo
質問者

お礼

お返事ありがとうございます。 多分そうかな・・・なんて思っていたのですがやはりそうでしたか・・・

関連するQ&A