① VC++如何打開某個指定的文件夾
用文件路徑操作函數找到源代碼所在的文件夾。使用文件操作函數fopen打開源文件即可。
路徑操作函數 chdir。
chdir函數是C語言中的一個系統調用函數(同cd)
功 能:更改當前工作目錄。
參 數:Path 必選。Path 可能包含驅動器。如果未指定驅動器,則當前驅動器上的默認目錄或文件夾。
返回值:成功返回0 ,失敗返回-1
文件操作函數fopen。
函數原型:FILE * fopen(const char * path,const char * mode);
返回值:文件順利打開後,指向該流的文件指針就會被返回。如果文件打開失敗則返回NULL,並把錯誤代碼存在errno中。
一般而言,打開文件後會做一些文件讀取或寫入的動作,若打開文件失敗,接下來的讀寫動作也無法順利進行,所以一般在fopen()後作錯誤判斷及處理。
② 電腦文件夾里的文件個數如何合計
有的小夥伴在使用電腦時,想要知道自己電腦文件夾里的文件個數,但是卻不知道如何合計,那麼小編就來為大家介紹一下吧。
方法11. 第一步,雙擊或者右擊打開想要查看個數的文件夾,小編就以c語言及數據結構文件夾為例,雙擊或者右擊打開該文件夾。
2. 第二步,來到該文件夾的主頁面後,我們可以看到頁面左下角顯示的項目個數,也就是該文件夾中含有的文件的數目。
1. 第一步,右擊想要查看文件數目的文件夾。
2. 第二步,在下圖所示的彈出窗口中,點擊箭頭所指的屬性選項。
3. 第三步,我們可以看到如下圖所示的屬性頁面,在下圖箭頭所指的方框內,可以看到包含的文件個數以及文件夾個數。
以上就是電腦文件夾里的文件個數如何合計的方法。
③ C語言怎麼讀取某一文件夾下的所有文件夾和文件
讀取的代碼方式如下:
intmain()
{
longfile;
struct_finddata_tfind;
_chdir("d:\");
if((file=_findfirst("*.*",&find))==-1L)
{
printf("空白! ");
exit(0);
}
printf("%s ",find.name);
while(_findnext(file,&find)==0)
{
printf("%s ",find.name);
}
_findclose(file);
return0;
}
④ C語言在windows環境下用VC++6.0,輸出指定路徑下文件目錄;
很久沒搞過純C的東西了...如果在VC6環境下,可以試試下面這個函數
(用純C實現也是這個思路,只不過用的數據結構不同)
//搜索文件及文件夾 參數(目標文件夾,返回的文件列表)
bool CjjjjDlg::getFolderAndFiles(CString path, CStringArray* filelist )
{
//遞歸查找文件夾內的所有文件.
CFileFind finder;
CString search="" ;
search.Format("%s\\*.*", path);
BOOL bFind=finder.FindFile(search);
if(!bFind)
{
return false;
}
else
{
CString pathb;
while(bFind)
{
bFind=finder.FindNextFile();
if(finder.IsDots())
continue;
pathb=finder.GetFilePath();
if(finder.IsDirectory()) //找到的是目錄
{
getFolderAndFiles(pathb,filelist);
continue;
}
else //找到的是文件,則增加到隊列
{
filelist->Add(finder.GetFilePath());
}
}
finder.Close();
return true;
}
}
用法:
CStringArray filelist;
getFolderAndFiles("C:\\Ldmis2005",&filelist);
for(int i=0;i<filelist.GetCount();i++)
{
this->MessageBoxA(filelist.GetAt(i));
}
數據在filelist里,可以根據自己想需要使用(這個函數是基於MFC的,純C下應該不能工作),
另:以後過了12點最好不要發求助消息,本來已經躺下了...
⑤ c語言怎麼打開空文件夾里的文件
1、採用C語言的fopen函數2、fopen函數的原型如下:FILE * fopen(const char * path,const char * mode); 詳細解釋該函數的參數:path 表示文件路徑名 mode 表示訪問文件的模式(常用訪問模式有:「r」表示只讀,此時文件必須存在;「w」只寫,每次以此方式訪問文件都會將文件內容清除重新為寫入准備,如果文件不存在,系統自動創建;「a」只寫,若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾,即文件原先的內容會被保留。)3、舉例說明:在D盤里的創建了一個文件夾(文件夾名為baozang),在該文件夾里創建一個文本文件(文件名為shuijing.txt)那麼以只讀方式打開該文件的一段示例代碼為:FILE* file;if ( NULL != (file = fopen(D:\\baozang\\shuijing.txt , r))){ 打開成功;}else{ 打開失敗;}
⑥ 如何獲得某一文件夾下文件列表(C語言)
我也有同樣來的問題。
到網上查,源感覺實現較復雜。
最後用的是c語言調用cmd
生成文件列表文件,再用c語言去讀取那個文件。進行字元串處理。
c語言調用cmd 為 system(「cmd命令」);
比如:
#include <stdio.h>
#include <dos.h>
int main()
{
system("dir /s /b > filelist.txt");/*這是全部文件,包括子目錄*/
system("dir *.txt /b > filelist2.txt"); /*當前目錄下的所有txt文件,不包括子目錄*/
/*然後*/
sleep(100);
FILE * ptrin = fopen("filelist","r");/*讀取並進行處理*/
/*處理*/
/*關閉文件flose(ptrin);*/
return 0;
}
希望有誰有更好的辦法。
⑦ VC環境中用C語言查找當前路徑下的所有文件和文件夾的函數是什麼
這是我的TFTP程序中的一個函數,是搜索當前盤符下的所有文件,包括文件的大小,並發送到客戶端,其中就有查找當前路徑下的文件,你自己挑一下,應該能完成你的需求。
void FileList(sockaddr_in sour_addr,char strStartDir[])
{
char sendbuffer[1024];
sockaddr_in destaddr;
int sourlen = 0;
int ret = 0;
int len = 0;
int flen = 0;
fd_set fdr;
unsigned short blocknum = 0;
FILE *file;
char filename[128];
strcpy(filename,strStartDir+2); /*獲取文件名*/
strcat(filename,"\\*");
destaddr.sin_family = AF_INET;
destaddr.sin_port = sour_addr.sin_port;
destaddr.sin_addr.s_addr = inet_addr(desthost);//
WIN32_FIND_DATA FindFileData;
HANDLE hFind;
hFind = FindFirstFile(filename, &FindFileData);
if (hFind == INVALID_HANDLE_VALUE)
{
printf ("Invalid File Handle");
}
else
{
while(FindNextFile(hFind,&FindFileData))
{
printf(FindFileData.cFileName);
printf("\r\n");
memset(sendbuffer,'\0',1024);
len = filldata(blocknum++,FindFileData.cFileName,strlen(FindFileData.cFileName),sendbuffer,sizeof(sendbuffer));
ret = sendto(serverSock,sendbuffer,len,0,(sockaddr *)&destaddr,sizeof(destaddr));
}
len = fillover(blocknum,"Over",4,sendbuffer,sizeof(sendbuffer));
ret = sendto(serverSock,sendbuffer,len,0,(sockaddr *)&destaddr,sizeof(destaddr));
FindClose(hFind);
return;
}
}