討論區快速選單
知識庫快速選單
網路投保旅行平安險 掌握Salesforce雲端管理秘訣
[ 回上頁 ] [ 討論區發言規則 ]
c語言取得某目錄下所有檔案
更改我的閱讀文章字型大小
作者 : s873601(andy) 人氣指數超過10000點
[ 貼文 43 | 人氣 16774 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/10/13 上午 11:58:13
請教各位大大,目前剛看完c的基礎書,想練習一下,我如果要取得某一目錄下的所有檔案名稱(含子目錄裡的檔案),我該往哪方面找呢?書上講的file i/o部份只是新增,刪除,修改 檔案或目錄,到網路上有找到有人說在microsoft vc裡有提供findfirst()和findnext(),但我該如何使用?還是有其它方式呢?
     謝謝
作者 : s873601(andy) 人氣指數超過10000點
[ 貼文 43 | 人氣 16774 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/10/13 下午 05:06:49
各位大大,不好意思,剛剛又去爬文了一下,其實有些問題是有解答,但是我是用搜尋的方式(文章太多沒有一個一個看),只要關鍵字沒下對就找不到,所以剛剛就有找到類似的,其實應該算解答了,可是我沒辦法試,因為我include <dir.h>,complier就會出錯,所以沒法試,各位大大我這是出了什麼問題??我用的是visual c++
     謝謝
作者 : sflam(Raymond)討論區板主 Visual C++ .NET卓越專家VC++一代宗師新手入門優秀好手資訊類作業求救頂尖高手C++一代宗師貼文超過4000則
[ 貼文 4945 | 人氣 9172 | 評價 32290 | 評價/貼文 6.53 | 送出評價 142 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/10/13 下午 08:53:41
>因為我include <dir.h>,complier就會出錯,所以沒法試,各位大大我這是出了什麼問題??我用的是visual c++

<dir.h> 不是標準的頭檔, VC++ 也沒有 <dir.h>.

findfirst(), findnext(), findclose() 所需的頭檔可以在相關函式的 MSDN 說明裡找到.

反正用的已經不是標準的函式了, 你也可以用 Windows 的 APIs 來做, 相關函式是: FindFirstFile(), FindNextFile(), FindClose(). MSDN 內也有例子.

作者 : ma_hty(白老鼠(Gary))討論區板主 OpenGL卓越專家DirectX優秀好手C++頂尖高手貼文超過2000則人氣指數超過70000點
[ 貼文 2189 | 人氣 89850 | 評價 10120 | 評價/貼文 4.62 | 送出評價 79 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人s873601註記此篇回應為最佳解答 2006/10/13 下午 11:40:20
#include <stdio.h>
#include <string.h>
#include <io.h> //c_file
#include <direct.h>

void main()
{
  char sdir[256], filter[256], path[256];
  struct _finddata_t c_file;
  long hFile;

  strcpy( sdir, "C:\\SOME_FOLDER" );
  strcpy( filter, "*.jpg" );

  _chdir( sdir );
  hFile = _findfirst(filter, &c_file);
  if( hFile!=-1 )
  {
    do{
     sprintf( path, "%s\\%s", sdir, c_file.name );
     printf( "%s\n", path );
    }while( _findnext( hFile, &c_file )==0 );
  }
}
作者 : clockwork(發條盒子) C++優秀好手貼文超過200則人氣指數超過70000點
[ 貼文 480 | 人氣 72923 | 評價 790 | 評價/貼文 1.65 | 送出評價 43 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/10/15 下午 03:29:27
感謝前輩我的程式寫出來了,但是我還有一個問題
就是我去開io.h direct.h檔出來之後,後來看仔細後,裡面真的有所有function的定義,而且還有結構的定義,幫助我不少,比一直查尋msdn快很多,但是裡面的註解全都沒有寫到有關function的東西,害我要一個一個function去查msdn看他輸入值是幹麻的還有輸出是幹麻的,這樣真的很麻煩也,難到沒有將每個.h都定義一個manual嗎?在c++或是c中好像只有std的部份網路上資料查出來一大堆,但是不含在std裡面的.h的話好像就只能看是不是用過或是問別人才知道有什麼用了

而且msdn怎麼不像java manual一樣具有向上查尋的功能,每次尋到一個function應該可以選擇他的.h在去看其它的function是做什麼的,不然的話真的需要找半天。
作者 : s873601(andy) 人氣指數超過10000點
[ 貼文 43 | 人氣 16774 | 評價 0 | 評價/貼文 0 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/10/15 下午 09:41:59
感謝各位大大,
     雖然小弟的進度比較慢(只知c的基本語法,其餘皆不知),但是還是小有成果,但是我這裡有一個問題就是,win32 api與MFC有何不同?,我是用win32 WIN32_FIND_DATA函數來做的,這幾天也去坊間找過一些書(非C or C++基礎的書),有關這一方面真的是少之又少,可能是時代變化吧!有看到一本MFC舊版新刷的書(超厚),但是不了解也不太敢買,不知市面上有無講win32 api使用的書嗎??還是只能上msdn,或是各位大大認為msdn已足夠了??
作者 : clockwork(發條盒子) C++優秀好手貼文超過200則人氣指數超過70000點
[ 貼文 480 | 人氣 72923 | 評價 790 | 評價/貼文 1.65 | 送出評價 43 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/10/15 下午 10:12:08
hi樓上的^^

我想我們都是正在起步,不知道可不可以交個朋友一起開發學習,這樣彼此都會很有進步,如果可以的話不知道你能否加入我到你的msn中呢?
我的信箱寫給你好了femc7488@ms94.url.com.tw 或是你寄你msn的位子到我的信箱中也行^^這樣有問題就可以互相多討論了
作者 : still(still) 貼文超過200則人氣指數超過10000點
[ 貼文 342 | 人氣 14970 | 評價 490 | 評價/貼文 1.43 | 送出評價 9 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/12/22 上午 08:44:26
// from C++ Cookbook, O'REILLY
//
// tested in WinXP+wxDev-C++6.10(or Dev-C++4.9.9.2)+Boost_1_33_1 OK!!
//
// std::cerr << "Usage: " << argv[0] << " [dir name]\n";
//
#include <iostream>
#include <boost/filesystem/operations.hpp>
#include <boost/filesystem/fstream.hpp>

using namespace boost::filesystem;

int main(int argc, char** argv) {

   if (argc < 2) {
     std::cerr << "Usage: " << argv[0] << " [dir name]\n";
     return(EXIT_FAILURE);
   }

   path fullPath = // Create the full, absolute path name
     system_complete(path(argv[1], native));

   if (!exists(fullPath)) {
     std::cerr << "Error: the directory " << fullPath.string( )
     << " does not exist.\n";
     return(EXIT_FAILURE);
   }

   if (!is_directory(fullPath)) {
     std::cout << fullPath.string( ) << " is not a directory!\n";
     return(EXIT_SUCCESS);
   }

   directory_iterator end;
   for (directory_iterator it(fullPath);
     it != end; ++it) { // Iterate through each
     // element in the dir,
     std::cout << it->leaf( ); // almost as you would
     if (is_directory(*it)) // an STL container
     std::cout << " (dir)";
     std::cout << '\n';
   }

   return(EXIT_SUCCESS);
}
作者 : jk793277(Jacky)
[ 貼文 11 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/12/25 下午 10:47:31
通常這種題目是要訓練你遞迴和迴圈的觀念,你應該要STUDY的是這部分吧
作者 : angleevil(邪月) 貼文超過200則人氣指數超過10000點
[ 貼文 485 | 人氣 18722 | 評價 720 | 評價/貼文 1.48 | 送出評價 39 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/11/15 上午 04:04:09
雖然這是一篇很舊的文章,但是我想請問大家
linux下的gcc or g++有類似FindFristFile嗎?

大部分我目前看過的,傾向用boost?//
不知道這樣有錯嗎?

雖然搭配shell script可以讀取目錄下所有檔案
或是ls -l > list
讀取list所有檔案名稱,可以做到類似行為

但是我有點想自己寫出一個類似perl可以讀取所有目錄下所有檔案的函式
ps:有時候發問問題時,太急躁,沒有先check out幾次,希望大家不要介意

作者 : closer(closer)
[ 貼文 10 | 人氣 1104 | 評價 40 | 評價/貼文 4 | 送出評價 1 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/11/15 上午 09:01:13
剛剛去翻了一下 GCC 的 C library document, 找到這個東西:

http://www.gnu.org/software/libc/manual/html_node/Scanning-Directory-Content.html#Scanning-Directory-Content

我自己沒用過,請自己試試看吧! :)
作者 : angleevil(邪月) 貼文超過200則人氣指數超過10000點
[ 貼文 485 | 人氣 18722 | 評價 720 | 評價/貼文 1.48 | 送出評價 39 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/11/15 下午 02:42:11
我猜測這應該可以解決我要的

不知道我可以用new來替代malloc嗎

再者,不太理解struct dirent ***namelist,
應該只要 寫出 int *namelist=new int[size] 就可以吧

因為我沒用過指標函式
不過很謝謝你
我會請教我學長c的一些用法[我目前只會c++一些基本用法]
^^只要可以些出perl中的幾個類似功能,之後就輕鬆了
 

 板主 : simula
 > C++ - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - C++ - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
C++
1 Raymond 13050 
2 青衫 4760 
3 simula 4690 
4 coco 4030 
5 白老鼠(Gary) 3670 
6 ozzy 2540 
7 Ben 2250 
8 Anderson 1960 
9 windblown 1650 
10 Kenny 1560 
C++
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.1875