批量获取文件夹以及子文件夹下文件数量,输出到Excel表格

批量获取文件夹以及子文件夹下文件数量,输出到Excel表格,第1张

如果你有点DOS命令的基础,我下面说的你就能看懂了。

按WIN+R打开运行,输入CMD,按回车,打开DOS窗口

进入你需要统计文件数量的那个目录,如果你不会DOS命令的话,就把文件夹复制到一个盘符根目录下,假设在D盘根目录下,文件夹名"123"

在DOS中依次输入

d:

按回车

cd 123

按回车

这时你就进入这个目录了

dir /s > 1txt

回车之后,会在这个目录里形成一个1txt的文件,文件中包含了你目录及子目录的文件信息

回到资源管理器里打开这个文件,里面就是你想要的东西。

string[] files = SystemIODirectoryGetFiles(@"D:\OD\", 

"doc",SystemIOSearchOptionTopDirectoryOnly);//获取该目录下的Doc文件

string[] files = SystemIODirectoryGetFiles(@"D:\OD\", "docx",SystemIOSearchOptionTopDirectoryOnly);//获取该目录下的Docx文件

string[] files = SystemIODirectoryGetDirectories(@"D:\OD\");//获取子文件夹

首先根据你的类型可以进行分组,如文件夹,和Word文档,也可以不分组最后从上面的代码中获取到文件夹和Word名称,做为项加入到组中,然后再根据项选选择相应的就可以了(如Word样式的或是文件夹样式的)

public string GetAllTxtValues(string txtName)

{

//这是路径:@"/TestText/"

//这是文件夹名称: txtName

string[] str = FileReadAllLines(@"/TestText/" + txtName);

string value = null;

for (int i = 0; i < strLength; i++)

{

value += str[i]ToString() + "\n";

}

return value; //返回的是文件名称 (文件名1+文件名2+文件名3 )

}

//如果你要得到所有文件名

string[] splitNew = valueSplit(' '); //以空格截取出来

for(int i=0;i<splitNew length;i++){

string name = splitNew[i]tostring(); //这得到文件名称

}

flistFiles()返回一个抽象路径名数组,这些路径名表示此抽象路径名所表示目录中的文件。

是该目录中的文件,不是子目录吧?

你可以这么做:

public void getDir(String strPath)

{

File f=new File(strPath);

if(fisDirectory())

{

File[] fList=flistFiles();

for(int j=0;j<fListlength;j++)

{

if(fList[j]isDirectory())

getDir(fList[j]getPath);

Systemoutprintln(fList[j]getName());

}

}

获得该父目录下所有子目录~

VB获取指定文件夹下所有文件夹

Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long

Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long

Private Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long

Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long

Private Declare Sub CoTaskMemFree Lib "ole32dll" (ByVal hMem As Long)

Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long

Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long

Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long

Private Const MAX_PATH = 260

Private Const MAXDWORD = &HFFFF

Private Const INVALID_HANDLE_VALUE = -1

Private Const FILE_ATTRIBUTE_ARCHIVE = &H20

Private Const FILE_ATTRIBUTE_DIRECTORY = &H10

Private Const FILE_ATTRIBUTE_HIDDEN = &H2

Private Const FILE_ATTRIBUTE_NORMAL = &H80

Private Const FILE_ATTRIBUTE_READONLY = &H1

Private Const FILE_ATTRIBUTE_SYSTEM = &H4

Private Const FILE_ATTRIBUTE_TEMPORARY = &H100

Private Const BIF_RETURNONLYFSDIRS = 1

Private Type FILETIME

dwLowDateTime As Long

dwHighDateTime As Long

End Type

Private Type WIN32_FIND_DATA

dwFileAttributes As Long

ftCreationTime As FILETIME

ftLastAccessTime As FILETIME

ftLastWriteTime As FILETIME

nFileSizeHigh As Long

nFileSizeLow As Long

dwReserved0 As Long

dwReserved1 As Long

cFileName As String MAX_PATH

cAlternate As String 14

End Type

Private Type BrowseInfo

hWndOwner As Long

pIDLRoot As Long

pszDisplayName As Long

lpszTitle As Long

ulFlags As Long

lpfnCallback As Long

lParam As Long

iImage As Long

End Type

Sub GetSubDirectory(srcPath As String)

GetAllFilePath srcPath, ""

End Sub

Function StripNulls(OriginalStr As String) As String

If (InStr(OriginalStr, Chr(0)) > 0) Then

OriginalStr = Left(OriginalStr, InStr(OriginalStr, Chr(0)) - 1)

End If

StripNulls = OriginalStr

End Function

Function GetAllFilePath(path As String, SearchStr As String)

Dim FileName As String

Dim DirName As String

Dim dirNames() As String

Dim nDir As Integer

Dim i As Integer

Dim hSearch As Long

Dim WFD As WIN32_FIND_DATA

Dim Cont As Integer

If Right(path, 1) <> "\" Then path = path & "\"

nDir = 0

ReDim dirNames(nDir)

Cont = True

hSearch = FindFirstFile(path & "", WFD)

If hSearch <> INVALID_HANDLE_VALUE Then

Do While Cont

DirName = StripNulls(WFDcFileName)

If (DirName <> "") And (DirName <> "") Then

If GetFileAttributes(path & DirName) And FILE_ATTRIBUTE_DIRECTORY Then

dirNames(nDir) = DirName

nDir = nDir + 1

ReDim Preserve dirNames(nDir)

End If

End If

Cont = FindNextFile(hSearch, WFD)

Loop

Cont = FindClose(hSearch)

End If

hSearch = FindFirstFile(path & SearchStr, WFD)

Cont = True

If hSearch <> INVALID_HANDLE_VALUE Then

While Cont

FileName = StripNulls(WFDcFileName)

If (FileName <> "") And (FileName <> "") Then

GetAllFilePath = GetAllFilePath + (WFDnFileSizeHigh MAXDWORD) + WFDnFileSizeLow

If GetFileAttributes(path & FileName) And FILE_ATTRIBUTE_DIRECTORY Then

List1AddItem path & FileName

End If

End If

Cont = FindNextFile(hSearch, WFD)

Wend

Cont = FindClose(hSearch)

End If

If nDir > 0 Then

For i = 0 To nDir - 1

GetAllFilePath = GetAllFilePath + GetAllFilePath(path & dirNames(i) & "\", SearchStr)

Next i

End If

End Function

'调用方式

'GetSubDirectory 路径名

Private Sub Command1_Click()

'结果列在列表框List1中

List1Clear

GetSubDirectory "c:\windows"

End Sub

天空一滴云,你好,思路是这样的,遍历A目录下所有的文件夹,用move命令将文件夹里的文件都移动到A文件夹内,这个批处理放在和A同级目录,然后执行就可以了

rem

移动文件

for

/f

"tokens=

delims="

%%n

in

('dir

"A"

/b/ad')

do

(

for

/f

"tokens=

delims="

%%a

in

('dir

"%%n"')

do

(

move

"%%a"

"A"

)

)

rem

删除空目录

for

/f

"tokens=

delims="

%%n

in

('dir

"A"

/b/ad')

do

(

rd

"%%n"

)

用DOS命令:

(假设你的这个文件夹是c:\pdf)

dir

c:\pdf\pdf

>

c:\pdf\listtxt

运行完之后到目录下去找一个文件名是listtxt的,打开就是文件名了

以上就是关于批量获取文件夹以及子文件夹下文件数量,输出到Excel表格全部的内容,包括:批量获取文件夹以及子文件夹下文件数量,输出到Excel表格、asp.net获取某一个文件夹下所有的子文件夹、C# 怎么获取一个文件夹内的所有子文件夹(包含子文件夹内的所有子文件夹)。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9590178.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存