Ⅰ C#如何快速遍历文件夹
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace 遍历文件夹和子文件夹
{
class Program
{
private static FileStream fs;
private static StreamWriter sw;
static void Main(string[] args)
{
string path;
int leval=0;
Console.WriteLine("请输入需要列出内容的文件夹的完整路径和文件名:");
path=Console.ReadLine();
path.Replace('\\','/');
fs = new FileStream("result.txt", FileMode.Create);
sw = new StreamWriter(fs);
//开始写入文件
sw.WriteLine("遍历结果如下:");
sw.WriteLine(path);
listDirectory(path,leval);
//清空缓冲区
sw.Flush();
//关闭流
sw.Close();
fs.Close();
Console.WriteLine("请按任意键继续……");
Console.ReadKey();
}
/// <summary>
/// 列出path路径对应的文件夹中的子文件夹和文件
/// 然后再递归列出子文件夹内的文件和文件夹
/// </summary>
/// <param name="path">需要列出内容的文件夹的路径</param>
/// <param name="leval">当前递归层级,用于控制输出前导空格的数量</param>
private static void listDirectory(string path,int leval)
{
DirectoryInfo theFolder = new DirectoryInfo(@path);
leval++;
//遍历文件
foreach (FileInfo NextFile in theFolder.GetFiles())
{
for (int i = 0; i < leval; i++) sw.Write('\t');
sw.Write("-->");
sw.WriteLine(NextFile.Name);
}
//遍历文件夹
foreach (DirectoryInfo NextFolder in theFolder.GetDirectories())
{
for (int i = 0; i < leval; i++) sw.Write('\t');
sw.Write("--)");
sw.WriteLine(NextFolder.Name);
listDirectory(NextFolder.FullName, leval);
}
}
}
}
Ⅱ win10cmd怎么遍历文件夹
工具:win10系统电脑一台步骤:1、打开win10系统电脑,打开文件夹选项,如图所示,点击“查看”选项后点击“选项”打开文件夹选项对话框。2、找到“隐藏文件和文件夹”选项 如图所示,找到“隐藏文件和文件夹”选项,选择“显示隐藏的文件、文件夹和驱动”
Ⅲ 如何遍历一文件夹下所有文件
这是一个递归调用的做法。 你可以做个函数 findAll 参数是 目录名 。 开始遍历,当你发现当前是目录。应该再调用函数findall,传入目录,让函数去遍历子目录。这样函数返回后,你可以继续遍历。
Ⅳ C语言:如何遍历指定的文件夹(可以包括子文件夹)中的每一个文件名
Function SearchFiles(Path As String, FileType As String)
Dim Files() As String '文件路径
Dim Folder() As String '文件夹路径
Dim a, b, c As Long
Dim sPath As String
sPath = Dir(Path & FileType) '查找第一个文件
Do While Len(sPath) '循环到没有文件为止
a = a + 1
ReDim Preserve Files(1 To a)
Files(a) = Path & sPath '将文件目录和文件名组合,并存放到数组中
List1.AddItem Files(a) '加入list控件中
sPath = Dir '查找下一个文件
DoEvents '让出控制权
Loop
sPath = Dir(Path & "\", vbDirectory) '查找第一个文件夹
Do While Len(sPath) '循环到没有文件夹为止
If Left(sPath, 1) <> "." Then '为了防止重复查找
If GetAttr(Path & "\" & sPath) And vbDirectory Then '如果是文件夹则。。。。。。
b = b + 1
ReDim Preserve Folder(1 To b)
Folder(b) = Path & sPath & "\" '将目录和文件夹名称组合形成新的目录,并存放到数组中
End If
End If
sPath = Dir '查找下一个文件夹
DoEvents '让出控制权
Loop
For c = 1 To b '使用递归方法,遍历所有目录
SearchFiles Folder(c), FileType
Next
End Function
Private Sub Command1_Click() '调用
SearchFiles "e:\", "*.exe"
End Sub
Ⅳ 如何遍历文件夹中的所有文件
您好,很高兴能帮助您
Private Sub Command1_Click()
Dim FileName As String, FilePath As String
Dim iFolder As Object, Xlapp As Object, Sh As Object
Set iFolder = CreateObject("shell.application").BrowseForFolder(0, "", 0, "")
If iFolder Is Nothing Then Exit Sub
FilePath = iFolder.Items.Item.Path
FilePath = IIf(Right(FilePath, 1) = "\", FilePath, FilePath & "\")
FileName = Dir(FilePath & "*.xls*")
Set Xlapp = CreateObject("excel.application")
Xlapp.displayalerts = False
Do Until Len(FileName) = 0
With Xlapp.workbooks.open(FilePath & FileName)
For Each Sh In .WORKSHEETS
If Len(Sh.RANGE("B2").Value) = 0 Then Sh.Delete
Next
.Close True
End With
FileName = Dir
Loop
Xlapp.quit
Set Xlapp = Nothing
End Sub
你的采纳是我前进的动力,
记得好评和采纳,答题不易,互相帮助,
Ⅵ 在windows下 怎么用c语言遍历文件夹要用纯c的
1、操作系统中有相关的API函数,可以读取目录中所有的文件名字,以及时间属性信息,把这些信息读出来,直接依次遍历即可。
2、例程:
#include"stdio.h"
#include"io.h"
intmain()
{
struct_finddata_tfiles;
intFile_Handle;
inti=0;
File_Handle=_findfirst("c:/temp/*.txt",&files);
if(File_Handle==-1)
{
printf("error ");
return0;
}
do
{
printf("%s ",files.name);
i++;
}while(0==_findnext(File_Handle,&files));
_findclose(File_Handle);
printf("Find%dfiles ",i);
return0;
}
Ⅶ 在java中如何遍历某个路径下的所有文件夹和文件
首先,我们先来遍历一下D盘根目录下所有的子文件:public
static
void
fileList()
{
File
file=new
File("d:/");
File[]
files
=
file.listFiles();
if
(files
!=
null)
{
for
(File
f
:
files)
{
System.out.println(f.getPath());
}
}
}对此,我们肯定不满足,我们需要遍历D盘下所有的文件和文件夹,而不是根目录下的文件夹,这个时候我们需要使用到递归:public
static
void
fileList(File
file)
{
File[]
files
=
file.listFiles();
if
(files
!=
null)
{
for
(File
f
:
files)
{
System.out.println(f.getPath());
fileList(f);
}
}
}然后在主函数中调用:public
static
void
main(String[]
args)
{
File
file=new
File("d:/");
fileList(file);
}结果是不是能令你满意呢?显然,输出的都是全路径,我们可以对我们的递归函数做如下改进:
public
static
void
fileList(File
file,int
node)
{
node++;
File[]
files
=
file.listFiles();
if
(files
!=
null)
{
for
(File
f
:
files)
{
for(int
i=0;i<node;i++){
if(i==node-1){
System.out.print("├");
}
else{
System.out.print("
");
}
}
System.out.println(f.getName());
fileList(f,node);
}
}
}然后再次在主函数中调用:public
static
void
main(String[]
args)
{
File
file=new
File("d:/");
fileList(file,0);
}得到的结果是一个类似树状的结构,如果你对此还不满意,可以尝试给JTree上添加节点,可以做到和资源管理器中一样的结构。
Ⅷ 请教,如何遍历一个文件夹下的所有文本文件
关于你说的遍历的问题,如果是在 WINDOWS 系统下面,你可以进入 MS-DOS 提示符,然后输入:DIR *.TXT /A /S 即可;如果是在 UNIX/Linux 系统下面,你可以使用 find 命令,即:find . -name "*.TXT" -print 。如果再进一步需要对其中的文件内容进行访问的话,那么就需要你进行编写程序了。即:每当你成功打开一个文本文件的时候,你就对该文件做相应的处理,然后关闭该文件,再寻找下一个文本文件,并进行同样的步骤。
Ⅸ 请我如何c语言遍历文件夹
#include <windows.h>
/************************************************/
*参数说明:
char *pszDestPath为需要遍历的目标路径
/************************************************/
EnmuDirectory(char *pszDestPath)
{
//此结构说明参MSDN
WIN32_FIND_DATA FindFileData;
//查找文件的句柄
HANDLE hListFile;
//绝对路径,例:c:\windows\system32\cmd.exe
char szFullPath[MAX_PATH];
//相对路径
char szFilePath[MAX_PATH];
//构造相对路径
wsprintf(szFilePath, "%s\\*", pszDestPath);
//查找第一个文件,获得查找句柄,如果FindFirstFile返回INVALID_HANDLE_VALUE则返回
if((hListFile = FindFirstFile(szFilePath, &FindFileData)) == INVALID_HANDLE_VALUE)
{
//查找文件错误
return 1;
}
else
{
do
{
//过滤.和..
//“.”代表本级目录“..”代表父级目录
if( lstrcmp(FindFileData.cFileName, TEXT(".")) == 0 ||
lstrcmp(FindFileData.cFileName, TEXT("..")) == 0 )
{
continue;
}
//构造全路径
wsprintf(szFullPath, "%s\\%s", pszDestPath, FindFileData.cFileName);
//读取文件属性,如果不是文件夹
if(!(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
{
//这里你可以自己添加分析是某种类型文件的代码。可以根据
//扩展名分析。
//这里有个实例,你可以看看
//有必要初始化一下
char *pszFileType = NULL;
//把pszFileType指向cFileName的倒数第三个数符。因为一般扩展名长为3个字符。
//当然,你也可以用其它方法分析扩展名。或倒序查“.”
pszFileType = &(FindFileData.cFileName[strlen(FindFileData.cFileName) - 3]);
//如果是jpg结尾的文件
if(!stricmp(pszFileType, "jpg"))
{
FILE *fp;
//或许这里打开C:\\data.txt不应该用"w+",你可试着来
fp = fopen("c:\\data.txt", "w+");
if(fp) fputs(szFullPath, fp);
fclose(fp);
}
}
//如果是文件夹,则递归调用EnmuDirectory函数
if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
EnmuDirectory(szFullPath);
}
//循环,查找下一个文件
}while(FindNextFile(hListFile, &FindFileData));
}
//关闭句柄
FindClose(hListFile);
//清空结构。可有可无的一句代码。函数退出会自动清空。
ZeroMemory(&FindFileData, sizeof(FindFileData));
return 0;
}
这是windows api版的,还有MFC版的和C版的。要的话来找我Q:503267714
Ⅹ Python中如何遍历指定目录下的所有文件
例如:在C:\TDDOWNLOAD目录下有a.txt、b.txt两个文件,另有\sub1子文件夹,C:\TDDOWNLOAD\sub1下又有c.txt、d.txt两个文件。 1. os.walk os.walk()返回一个三元素的tuple:当前路径、子文件夹名称、文件列表。>>> import os>>> def fun( path ):... for root, dirs, files in os.walk( path ):... for fn in files:... print root, fn... >>> fun( r'C:\TDDOWNLOAD' )C:\TDDOWNLOAD a.txtC:\TDDOWNLOAD b.txtC:\TDDOWNLOAD\sub1 c.txtC:\TDDOWNLOAD\sub1 d.txt>>> 2. glob.glob glob.glob()只接受一个参数,这个参数既代有路径,又代有匹配模式,返回值为一个列表。注意,glob.glob()无法直接穿透子文件夹,需要自己处理:>>> def fun( path ):... for fn in glob.glob( path + os.sep + '*' ): # '*'代表匹配所有文件... if os.path.isdir( fn ): # 如果结果为文件夹... fun( fn ) # 递归... else:... print fn... >>> fun( r'C:\TDDOWNLOAD' )C:\TDDOWNLOAD\a.txtC:\TDDOWNLOAD\b.txtC:\TDDOWNLOAD\sub1\c.txtC:\TDDOWNLOAD\sub1\d.txt>>> '*'为匹配模式,代表匹配所有文件,只有这样才能将子文件夹查出来,以便递归深入,探查下一层的文件。