c獲取文件夾下所有文件夾
⑴ C# 遍歷文件夾下所有子文件夾中的文件,得到文件名
輸入某文件夾路徑,遍歷該文件夾及其子文件夾(包括子文件夾的子文件夾等),獲取其中所有文件的函數:
/// <summary>
/// 查找指定文件夾下指定後綴名的文件
/// </summary>
/// <param name="directory">文件夾</param>
/// <param name="pattern">後綴名</param>
/// <returns>文件路徑</returns>
public void GetFiles(DirectoryInfo directory, string pattern, ref List<string> fileList)
foreach (FileInfo info in directory.GetFiles(pattern))
catch (System.Exception ex)
foreach (DirectoryInfo info in directory.GetDirectories())//獲取文件夾下的子文件夾
語言結構
類:一個基本的C#類中包含數據成員、屬性、構造器和方法。屬性可以是靜態或實例成員。在C#中類的聲明與C++和Java很相似。但是,不像C++,C#結構體與類是不支持繼承多個父類。但是,與Java相同的是,一個結構體可以實現介面(interface)。Java的關鍵字import已經被替換成using,它起到了同樣的作用。
以上內容參考:網路-c#
⑵ 如何用c語言獲取目錄下的文件和目錄列表
1、可以利用getenv函數來實現。
在Linux系統中,home目錄的定義是通過系統環境變數中的HOME變數值來確定的,在shell下可以通過
echo $HOME來查看。
而在C語言中,庫函數getenv可以用作獲取環境變數值。該函數位於stdlib.h, 原型為
char *getenv(char *name);
功能為獲取名字為name的環境變數字元串。
所以,下面代碼就可以獲取到home目錄名了:
2、常式:
char *home;
home = getenv("HOME");
printf("the home path is %s\n", home);
⑶ 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# 如何隨機讀取一個文件夾下的多個文件內容
獲取那個文件夾下的所有文件,用洗牌演算法洗一遍,根據數量生成一個隨機數n,讀取前n個文件的內容
usingSystem;
usingSystem.IO;
usingSystem.Linq;
classProgram{
staticRandomrand=newRandom();
staticT[]FisherYatesShuffle<T>(T[]arr,intn){
for(inti=0;i<n;i++){
intj=rand.Next(i,n);
(arr[i],arr[j])=(arr[j],arr[i]);
}
returnarr.AsSpan().Slice(0,n).ToArray();
}
staticvoidMain(){
stringdirname=".";
varfilenames=Directory.GetFiles(dirname,"*.txt");
intn=rand.Next(filenames.Length);
varresult=FisherYatesShuffle(filenames,n)
.SelectMany(f=>File.ReadAllLines(f))
.Select(line=>line.Split(':')[1].Split(','))
.Aggregate((crrnt,rslt)=>crrnt.Intersect(rslt).ToArray());
File.WriteAllText("result.txt",string.Join("",result));
}
}
⑸ 獲取子文件夾下的所有文件名
摘要 按下「win+R"快捷鍵, 輸入"cmd",回車。
⑹ 如何用c#獲取指定文件夾下所有文件名
DirectoryInfodir=newDirectoryInfo("c:\test");
FileInfo[]fileInfo=dir.GetFiles();
List<string>fileNames=newList<string>();
foreach(FileInfoiteminfileInfo)
{
fileNames.Add(item.Name);
}
⑺ 如何獲取某文件夾中所有子文件夾的文件名
用DOS命令:
(假設你的這個文件夾是c:\pdf)
dir
c:\pdf\*.pdf
>
c:\pdf\list.txt
運行完之後到目錄下去找一個文件名是list.txt的,打開就是文件名了
⑻ c語言 怎樣獲取文件夾中的所有文件
較簡單的是用DOS命令 DIR 並轉向到一個文件,再打開文件讀出一個一個文件名。
例如:
char my_cmd[80] = "DIR/B/A-D D:\\USER\\WANG >> abc.lis";
system( cmd);
你就獲得D:\\USER\\WANG 文件夾中的所有文件,選項意思是 只列 文件名,並按字母排列。
>> abc.lis 轉向,存入文件 abc.lis
接著,你可以 用FILE *fp; fp = fopen("abc.lis","r"); 打開文件
用 fgets() 讀文件名。
⑼ 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;
}
}