A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
続き。
実行結果:
『FindFirstFile.exe C:』として実行した。
--------------------
◆C:
├1.ICO
├10.ICO
├11.ICO
├12.ICO
├<121ware>
├13.ICO
├14.ICO
├15.ICO
├16.ICO
├17.ICO
├18.ICO
├2.ICO
├3.ICO
├4.ICO
├5.ICO
├6.ICO
├7.ICO
├8.ICO
├9.ICO
├ACCESSP.DAT
├<Apache>
├<APSETUP>
├ASC_FONT.DAT
├AUTOEXEC.BAT
├<BACKUP>
├<BACKUP2>
├BASEINF.CFG
├BBS.MCR
├BEGIN.MCR
├BOOT.INI
├bootfont.bin
├BOX.MCR
├BROKE.ICO
├BUSINE.MCR
├BYE.ICO
├CCAT.BAT
├CLUB.MCR
├cmldr
├<Config.Msi>
├CONFIG.SYS
├COP.HLP
├COPER.BAT
├COPER.M01
├COPER.M02
├COPERE.EXE
├DB.MCR
├DEFAUL64.ICO
├DEFAULT.ICO
├<Desktop>
├DIAL.ICO
├Documents
├<Documents and Settings>
├<DOTNETFX>
├DSIGUP.MCR
├GATE.MCR
├GUIDE.MCR
├hiberfil.sys
├INFO1.ICO
├INFOS.MCR
├INFSALON.MCR
├INTERSIT.MCR
├INTRSITE.MCR
├IO.SYS
├JPDEC16.EXE
├JUMP.MCR
├<JUST>
├KANAGAWA.MCR
├KCOPER.M02
├KGYOSEI.MCR
├KLOGIN.MCR
├LOGIN.MCR
├MAIL.MCR
├MAIL.MEN
├MAIN1.MCR
├MAINTERM.MCR
├MMAIN.MCR
├MOWARI.MCR
├MSDOS.SYS
├MYEDIT.BAT
├<MyGame>
├NAPDEV.SYS
├navaデータ
├navaデータ2
├<Necread>
├NTDETECT.COM
├ntldr
├O.ICO
├OLG.MCR
├OLT.ICO
├OLT.MCR
├<OPTIONS>
├OSIRASE.MCR
├OWARI.MCR
├<OXPSP>
├<OXPSP1>
├<OXPSP2>
├pagefile.sys
├<PCP>
├PDOXUSRS.NET
├PRIVATE.CFG
├<Program Files>
├<PuCa.vol>
├QVAN.EXE
├RCVMAIL.MCR
├RCVMAIL0.MCR
├RCVMAIL1.MCR
├RCVMAIL2.MCR
├<RECYCLER>
├SAKUIN.CSV
├SAKUIN.MCR
├SALON.MCR
├SDELAY.DAT
├SETTEI.EXE
├SETUP.MCR
├SHOP.MCR
├SKENSAKU.MCR
├<Smdata>
├SNDMAIL.MCR
├SOKUHO.MCR
├<SUPPORT>
├<svrecord>
├<System Volume Information>
├<tanken>
├TITLE.ICO
├TITLE2.ICO
├TOKUSETU.MCR
├U.ICO
├Untitled.krm
├USER.MEN
├<VALUEADD>
├VCLS.COM
├VEXIT.COM
├VIEW.EXE
├VNAP.EXE
├VNAPDISP.EXE
├VOFF.COM
├VON.COM
├WELCOME.ICO
├WELTITLE.ICO
├WFDTREE.DAT
├<WINDOWS>
├<WINXP>
├<WUTemp>
├<yougo>
├受信.ICO
├接続.ICO
├未読一括.ICO
├未読表.ICO
├索引.ICO
├終了.ICO
├編集.ICO
├設定.ICO
├送信.ICO
├電掲.ICO
├ガイド1.ICO
├ガイド2.ICO
├ジャンプ.ICO
├ヨウコソ.ICO
├ライブラ.ICO
フォルダ数:30 個
ファイル数:129 個
--------------------
ほら。
ファイル名でソートされて表示されましたが…。
ソースを試して見て下さい。
もし上手くソートしない場合は、リスト構造の構造体に取得していき
自分でソートすれば良いだけですけど。
以上。
No.2
- 回答日時:
★順番どおりに取得される?不思議。
>ファイル名でソートして取得する関数(API)はあるのでしょうか?
↑
ありません。
>_FindFirst や FindFirstFile を使用すると指定フォルダの
↑
この関数(_FindFirst)は処理系の独自関数ですよね。
Win32 API では FindFirstFile() と FindNextFile() がペアですし。
でも Win32 API で取得するとファイル名でソートされて取得されませんか?
私の環境(Windows XP)ではファイル名でソートされて取得されますが…。
下に確認用のソースを載せておきます。
サンプル関数:
#include <stdio.h>
#include <shlwapi.h>
#include <windows.h>
VOID FuncListSubdir( LPTSTR lpPath )
{
// カウンタ変数
DWORD dwSubdir = 0;
DWORD dwFiles = 0;
// 宣言
WIN32_FIND_DATA fdFile;
HANDLE hFind;
LPTSTR lpWild;
printf( "◆%s\n", lpPath );
lpWild = PathAddBackslash( lpPath );
lstrcpy( lpWild, TEXT("*.*") );
if ( (hFind = FindFirstFile(lpPath,&fdFile)) != INVALID_HANDLE_VALUE ){
do {
if ( fdFile.cFileName[0] != '.' ){
if ( fdFile.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ){
printf( "├<%s>\n", fdFile.cFileName );
dwSubdir++;
}
else{
printf( "├%s\n", fdFile.cFileName );
dwFiles++;
}
}
} while ( FindNextFile(hFind,&fdFile) );
FindClose( hFind );
}
lpWild[ -1 ] = '\0';
// 結果表示
printf( "\n" );
printf( "フォルダ数:%u 個\n", dwSubdir );
printf( "ファイル数:%u 個\n", dwFiles );
}
// メイン関数
int main( int argc, char *argv[] )
{
TCHAR szPath[ MAX_PATH ];
if ( argc == 1 ){
printf( "USAGE: FindFirstFile.exe <direct>\n" );
return 1;
}
// 検索
lstrcpy( szPath, argv[1] );
FuncListSubdir( szPath );
return 0;
}
続く。
ありがとうございます。
基本的にソートされているのですが、極一部のファイル(ディレクトリ)がソートされないで取得されます。
それにMSDNにはソートして取得すると明言されていないので、ファイル名でソートされなくても仕様ということになりますし・・・
このため明示的にソートができないか悩んでいます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 Win 10エクスプローラーについて、ファイル名変更後即座に移動してしまう 対策は? 8 2023/08/16 03:49
- Visual Basic(VBA) Excel VBA ファイル取得について フォルダの中に、ファイル名“会議“を含むファイルが1つまた 9 2022/10/12 01:18
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- Visual Basic(VBA) VBA GetAttrについて教えてください 2 2022/12/22 15:25
このQ&Aを見た人はこんなQ&Aも見ています
-
カンパ〜イ!←最初の1杯目、なに頼む?
飲み会で最初に頼む1杯、自由に頼むとしたら何を頼みますか? 最初はビールという縛りは無しにして、好きなものを飲むとしたら何を飲みたいですか。
-
大人になっても苦手な食べ物、ありますか?
大人になっても、我慢してもどうしても食べれないほど苦手なものってありますよね。 あなたにとっての今でもどうしても苦手なものはなんですか?
-
初めて自分の家と他人の家が違う、と意識した時
子供の頃、友達の家に行くと「なんか自分の家と匂いが違うな?」って思いませんでしたか?
-
許せない心理テスト
私は「あなたの目の前にケーキがあります。ろうそくは何本刺さっていますか」と言われ「12本」と答えたら「ろうそくの数はあなたが好きな人の数です」と言われ浮気者扱いされたことをいまだに根に持っています。
-
好きな和訳タイトルを教えてください
洋書・洋画の素敵な和訳タイトルをたくさん知りたいです!【例】 『Wuthering Heights』→『嵐が丘』
-
FindFirstFileとFindNextFileで検索される順番
C言語・C++・C#
-
VB.NETでファイル名順にファイルを読む方法
Visual Basic(VBA)
-
System.IO.Directory.GetFilesの順番
Visual Basic(VBA)
-
-
4
FindFirstFileについて
C言語・C++・C#
-
5
画面を強制的に再描画させる方法
C言語・C++・C#
-
6
C言語を用いたファイルの一括削除について
C言語・C++・C#
-
7
readdir()で得られるファイル・ディレクトリ情報の順番は?
Perl
-
8
Visual C++からftpを使う
C言語・C++・C#
-
9
C言語(gcc), Linux, FTPプログラミング
C言語・C++・C#
-
10
wsprintf関数の使い方について
C言語・C++・C#
-
11
CString から LPCTSTRの型に変換
C言語・C++・C#
-
12
CStringからchar*への型変換について教えてください。
C言語・C++・C#
-
13
構造体のメンバをfor文で回したい
C言語・C++・C#
-
14
DWORDの実際の型は何でしょうか
C言語・C++・C#
-
15
Linuxでフォルダ内全ファイル名の読み込み
C言語・C++・C#
-
16
ファイルやディレクトリの存在確認を行う方法
C言語・C++・C#
-
17
CStringをwchar_tに変換したい
C言語・C++・C#
-
18
コンボボックスのドロップダウンリストが表示されない
C言語・C++・C#
-
19
C++ 構造体の一括初期化 {0}
C言語・C++・C#
-
20
C言語にてプログラミングを行っていて、FindFirstFileにてフ
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel VBA テキストボックス内...
-
配列の中身を入れ替える方法を...
-
C# DataGridView のヘッダーセ...
-
System.IO.Directory.GetFiles...
-
あるディレクトリ内のファイル...
-
構造体配列のソート
-
【WPF】【C#】【XAML】LISTBOX
-
DataGridViewのソートを止めたい
-
excel VBA リストビューの行...
-
datagridviewの並べ替え
-
GridViewで列のソートを無効に...
-
C言語・要素除去
-
プログラミングについて 配列を...
-
仮想リストビューのソートについて
-
文字列をソートする方法
-
配列の問題
-
VBA基本構文の作り方 2列の...
-
部分和問題がわかりません。
-
listboxの並び替え
-
VB.net データセットからのCSV...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
System.IO.Directory.GetFiles...
-
VB.NETでファイル名順にファイ...
-
C# DataGridView のヘッダーセ...
-
あるディレクトリ内のファイル...
-
C言語・要素除去
-
ファイル名「1.jpg ~10.jpg~...
-
Excelですべての組合せ(重複組...
-
C言語でアナグラムを求めるプロ...
-
2次元配列を複数項目でソートし...
-
C# DataTableの行をソートしてD...
-
DataGridViewソート時に先頭行...
-
n番目に大きい数を求めるアル...
-
DataGridViewの複数列を連動し...
-
VBA基本構文の作り方 2列の...
-
配列の問題
-
10個の整数を入力して小さい順...
-
構造体配列の並べ替え
-
vbでDataTableの抽出コピー
-
リスト構造のソートで悩んでま...
-
DataGridViewの昇順降順。
おすすめ情報