-PR-
締切済み

ファイルオープンについて

  • 暇なときにでも
  • 質問No.25167
  • 閲覧数188
  • ありがとう数8
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 55% (10/18)

ファイルオープンは,具体的にファイル名を指定しなければならないのでしょうか?
例えば,".ini"の拡張子を持つ任意のファイルをファイルオープンしたいと思っています。

または,そのディレクトリ内にあるファイル名全てを列挙する方法が知りたいです。

ご存知の方,何卒アドバイスを下さるようにお願いします。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全3件)

  • 回答No.1
レベル13

ベストアンサー率 37% (570/1525)

「任意のファイルをオープン」なんていう危険な関数は標準では用意されません。 どうしても必要なら(必要な状況は思いつきませんが…)作るしかないですね。 環境が指定されていないのですがWindowsでいいですか? 言語はCでいいですか?C++ですか? とりあえず、Win32APIを使ってCで書くなら FindFirstFile() FindNextFile() FindClose() ...続きを読む
「任意のファイルをオープン」なんていう危険な関数は標準では用意されません。
どうしても必要なら(必要な状況は思いつきませんが…)作るしかないですね。

環境が指定されていないのですがWindowsでいいですか?
言語はCでいいですか?C++ですか?

とりあえず、Win32APIを使ってCで書くなら
FindFirstFile()
FindNextFile()
FindClose()
これらを組み合わせればディレクトリ(フォルダ)内のファイルの列挙は可能です。

UNIX系ならdirent.hを参照してください。

拡張子が指定されているのでMacintoshは除外しましたが必要なら調べますよ。
(多分PBコールにあるから)
補足コメント
__sourin__

お礼率 55% (10/18)

ご親切なアドバイスを頂きまして,本当にありがとうございます。

初心者なので,とんちんかんな事を言っていたらごめんなさい。環境は,UNIXでC言語を使っています。

必要と思ったきっかけは,"○○○.ini"というファイルが,数千個ほどありまして,それらを各々加工(フィルタ)して"○○○.dat"というファイルにしようと思ったからです。

これからdirent.hを調べてみます。
まだ分からない事があると思いますので,その時はまたよろしくお願いします。ありがとうございました。
投稿日時 - 2001-01-07 05:01:42
関連するQ&A


  • 回答No.2
レベル11

ベストアンサー率 49% (139/279)

UNIXの場合、されようとしている事でしたら、 $ 作成するフィルター *.ini のように、ワイルドカードで、ファイルを指定してやれば、mainの引数にファイル名が展開された状態できます。 (しばらくUNIX触ってないのでワイルドカードが間違っているかもしれません。) あとは、 ・引数のファイルをオープン ・このファイル名の拡張子を変更したものをオープン ・処理結果を出力する を ...続きを読む
UNIXの場合、されようとしている事でしたら、

$ 作成するフィルター *.ini

のように、ワイルドカードで、ファイルを指定してやれば、mainの引数にファイル名が展開された状態できます。
(しばらくUNIX触ってないのでワイルドカードが間違っているかもしれません。)
あとは、
・引数のファイルをオープン
・このファイル名の拡張子を変更したものをオープン
・処理結果を出力する
を繰り返せばいいのでは?
  • 回答No.3
レベル13

ベストアンサー率 37% (570/1525)

老婆心ながら… UNIXのファイルシステム(i-nodeファイルシステム)では1ディレクトリに数千個もファイルを置くとopen/closeにとんでもない時間がかかります。 i-nodeはカスケード方式ですから…。 1ディレクトリに置くファイル数を制限してディレクトリ分割することをオススメします。 top/a/a*.ini top/b/b*.ini ... こんな感じでもいいし、時間で ...続きを読む
老婆心ながら…

UNIXのファイルシステム(i-nodeファイルシステム)では1ディレクトリに数千個もファイルを置くとopen/closeにとんでもない時間がかかります。
i-nodeはカスケード方式ですから…。

1ディレクトリに置くファイル数を制限してディレクトリ分割することをオススメします。
top/a/a*.ini
top/b/b*.ini
...
こんな感じでもいいし、時間で分割してもいいし。

もっとアクセス速度を上げるならファイル作成時にハッシュ表を作ってしまうほうがいいでしょう。
無駄なディレクトリ検索をしなくて済みます。

仕様上どうしようもないかもしれませんが…。
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


新大学生・新社会人のパソコンの悩みを解決!

いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ