アプリ版:「スタンプのみでお礼する」機能のリリースについて

あるディレクトリを指定して、その下層にあるディレクトリの名前を取得するにはどのようにすればいいのでしょうか?

簡単にできる方法があれば教えてください。

A 回答 (5件)

>コンパイラはVC++ 2005EEです。



 でしたら、_findfirst, _findnext ( <io.h> ) という関数がありませんか?。
 
 当方は、BorlandC++5.x です( _ が付いていない <dir.h> )。
 Borland での使用例です(「方言」まるだしなので注意★)。

  int    iDone;
  struct  ffblk  sInfo;

  iDone = findfirst( "D:\\あるディレクトリ\\*.*", &sInfo, FA_DIREC );

  while( ! iDone ){

    if( ( '.' != sInfo.ff_name[0] ) && ( FA_DIREC & sInfo.ff_attrib ) ){

      printf( "%s\n", sInfo.ff_name );  // 下層にあるディレクトリ

      (「その下」もなら、再帰呼出(冒頭部、要改変))
    }
    iDone = findnext( &sInfo );
  }

>簡単にできる方法があれば教えてください。

 上を VC++ に移植するだけ・・?。

★<io.h> を覗けば、関数仕様、構造体名等の違いが判るはず・・。
    • good
    • 0
この回答へのお礼

無事下層ディレクトリの名前を取得することができました。

ご教授ありがとうございました。

お礼日時:2008/11/17 22:28

>#3


コードポータビリティの意識は「しておいた方がいい」とは思いますが、そのためにわざわざデフォルト開発環境を拡張する必要は全く感じません。もちろん私だってopendir()がVC++に標準で備わってればありがたく使わせてもらうでしょうけど。
「移植性がなくなる」といったところで同じことを同じように実現できるAPIはたいてい備わっているのだからそれほど神経質になることもないと思いますが?
    • good
    • 0

フリーライブラリの opendir() を使う。


ディレクトリのあるOSなら用意されてるのでは。

OS毎の独自の方法を使うと移植性が消えてしまう。
    • good
    • 0

.NET Framework2.0以降ならSystem.IO.DirectoryクラスのGetDirectoryメソッドを使えば可能です。


http://msdn.microsoft.com/ja-jp/library/c1sez4sc …

WIN32APIで実装するなら_find系関数で検索条件をサブディレクトリとして検索します。
http://msdn.microsoft.com/ja-jp/library/kda16keh …
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます!

さっそく試してみます。

お礼日時:2008/11/16 21:44

一般的な方法はありません。



OS・開発環境によりやり方が異なるので、これらを提示してください。
    • good
    • 0
この回答へのお礼

記入し忘れていました、すいません。

OSはVista HomePremiumでコンパイラはVC++ 2005EEです。

お礼日時:2008/11/16 20:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!