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;
}
}