『壹』 C語言怎麼讀取某一文件夾下的所有文件夾和文件
讀取的代碼方式如下:
int main()
{
long file;
struct _finddata_t find;
_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);
return 0;
}
『貳』 如何用c語言打開一個文件
近用c語言做文件操作比較頻繁,記幾個常用的操作
獲得文件大小:
fseek(fp, 0, SEEK_END);
int fileSize = ftell(fp);
rewind(fp);
讀取指定位置的數據塊:
fseek( fp,offset,SEEK_SET );
int num_read = fread(buf, 1, length, fp);
刪除文件
int res = access( filename,0 ); // 判斷文件是否存在
if ( res == 0 )
{
res = remove( filename );// 刪除文件
return ( res ==0 );
}
在指定位置寫入塊數據:
fseek( fp, offset, SEEK_SET );
num_write = fwrite( buf, 1, n, fp );
打開文件方式中有一個比較特別的,如果 某文件中已經有了一部分數據,你需要繼續在上面添加數據,但是是在指定位置添加,也就是說,仍然需要通過 fseek 找到寫入位置,然後再 fwrite,這時候需要以 "rb+" 方式打開。而不能以"a"或者"ab+"方式。以"a"方式打開,fseek函數不起作用。
獲得文件屬性
struct stat st;
FILE *fp = fopen( filename.c_str(),"rb" );
if ( !fp )
{ // error
}
fstat( fp->_file, &st );
遍歷目錄
std::string dirspec = dir + "\\*.*";
struct _finddata_t filefind;
int done = 0;
intptr_t handle = 0;
if( ( handle = _findfirst(dirspec.c_str(),&filefind) ) == -1 )
return IVS_FAIL;
IVS_RESULT res = IVS_OK, response =IVS_OK;
while( !(done=_findnext(handle,&filefind)) )
{
if( !strcmp(filefind.name,"..") || !strcmp(filefind.name,".") )
continue;
AdsFileInfo info;
if((_A_SUBDIR==filefind.attrib))
{
info._filename = filefind.name;
info._fileSize = filefind.size;
info._atime = filefind.time_access;
info._ctime = filefind.time_create;
info._mtime = filefind.time_write;
info._isdir = true;
}
else
{
std::string tmpFilename = dir + "\\";
tmpFilename += filefind.name;
res = getFileInfo( tmpFilename, info );
response = (!SUCCESS(res))?res: response;
}
list.push_back( info );
}
_findclose(handle);
『叄』 關於c語言中如何打開文件
//zifu.txt文件只能由ASCII字元組成,否則會出現亂碼
#include<stdio.h>
int main()
{
char str[200],a,b;
FILE *p;
int i;
if(NULL==(p=fopen("zifu.txt","r+")))
{
printf("文件打開失敗!\n");
}
else
{
fscanf(p,"%s",str);
printf("你要替換的字元:");
a=getchar();
getchar();
printf("你要替換成的字元:");
b=getchar();
getchar();
for(i=0;str[i];i++)
{
if(a==str[i])
str[i]=b;
}
printf("%s\n",str);
fprintf(p,"%s",str);
fclose(p);
}
return 0;
}
『肆』 如何使用c語言打開一個文件
#include<stdio.h>
intmain(intargc,char*argv[])
{
FILE*fp=fopen(argv[1],"w+");//以讀寫方式創建一個文本文件,其中文件名由參數argv[1]提供
if(fp==NULL)exit(0);//出錯檢查,如果打開失敗,打開函數返回一個空指針,則退出程序
...
...
fclose(fp);//運行完畢後一定不要忘記關閉文件
return0;
}
運行:
打開cmd.exe,輸入程序名(必須有路徑) (空格) 打開的文件名 (回車)。注意,如果程序名或者文件名內部有空格,必須用雙引號引起來
之後便可以運行下面的內容
『伍』 c語言如何用fopen打開另一相對路徑下的文件夾
這種情況既可以轉換成絕對路徑,也可以切換到那個目錄下,也可以在這個目錄到那個目錄的相對路徑。
『陸』 用C語言的函數創建、打開和讀寫文件
用_mkdir即可,不過需要調用direct.h頭文件,下面舉個例子
#include
#include
#include
int
main(
void
)
{
if(
_mkdir(
"\\testtmp"
)
==
0
)//0表示創建成功
{
printf(
"directory
'\\testtmp'
was
successfully
created\n"
);
system(
"dir
\\testtmp"
);//執行dos語句打開文件夾
if(
_rmdir(
"\\testtmp"
)
==
0
)//刪除成功
printf(
"directory
'\\testtmp'
was
successfully
removed\n"
);
else
printf(
"problem
removing
directory
'\\testtmp'\n"
);
}
else
printf(
"problem
creating
directory
'\\testtmp'\n"
);
}
『柒』 c語言怎麼打開一個文件夾
在C語言中,對文件夾的操作,專業的說法稱為"切換路徑/目錄",而不是"打開",因為文件夾,並不是一個"真正的文件",而只是一個訪問文件的目錄.
用C語言中的函數chdir,也就是change directory
int chdir(char *path)
-- 使指定的目錄path變成當前的工作目錄,之後所有的文件操作都是該目錄下.
比如,想切換到f盤test目錄下可以這樣:
chdir("f:\\test ");
返回0表示切換成功,否則,表示失敗.
『捌』 c語言如何打開文件
如果對樓主有幫助,給個採納好不,謝謝啦
[cpp]view plain
#include<commdlg.h>
OPENFILENAMEofn;
charszFile[MAX_PATH];
ZeroMemory(&ofn,sizeof(ofn));
ofn.lStructSize=sizeof(ofn);
ofn.lpstrFile=szFile;
ofn.lpstrFile[0]=TEXT('