『壹』 怎么用bat文件筛选文件名
@echo off&setlocal enabledelayedexpansion
(for /r %%i in (*.jpg)do (set ".=%%~nxi"&if "!.:~8,1!"=="" echo %%~nxi))>1.txt
start 1.txt
这个可以了,只要是前面只有4个数字的照片就可以列入到1.txt中~
PS:如果是要完整路径,将echo %%~nxi改成echo %%i即可~
『贰』 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) '加入控件中
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
『叁』 VB 查找某个盘下的一个特定文件名的文件
算你找对人了~ 呵呵
vbs代码如下:(遍历e盘找到后以对话框的形式提示文件路径)
Set Fsys=WScript.CreateObject("Scripting.FileSystemObject")
dim s:Call Visit("e:") 'a b c d随自己改
set file=fsys.createtextfile("list.txt")
file.write s
file.close
Sub Visit(folder)
s=s&folder&vbcrlf
Set oFolder=Fsys.GetFolder(folder)
Set sFolder = oFolder.SubFolders
For Each fd In sFolder
Visit(fd)
Next
End Sub
set fi=Fsys.opentextfile("list.txt",1)
i=1
do while fi.atendofstream<>true
n=fi.readline
set folder_=Fsys.getfolder(n)
set files=folder_.files
for each file in files
d=Fsys.getfileName(file)
s = Instr(1, d, "abc.txt") 'abc.txt可以换成你想要查找的文件
if s <>0 then
Set f = Fsys.GetFile(file)
msgbox(f)
end if
end if
next
wscript.sleep 100
i=i+1
loop
fi.close
Fsys.deletefile("list.txt")
批处理写法:
dir /s /b e:\abc.txt
pause
两个程序已经调试过 可用 祝你用的开心 ~不满意的地方可以告诉我哦~
『肆』 C语言 如何通过文件指针获得文件名
在tc20中,一旦你成功打开一个文件,他将返回一个文件指针。
FILE*fp;
fp=fopen("abc.dat",文件状态(如w,r,r+));
当上面的操作成功后文件指针fp就会赋予你打开文件的最基本信息!
FILE结构在TurboC在stdio.h文件中有以下的文件类型声明:
typedefstruct
{
shortlevel;/*缓冲区“满”或“空”的程度*/
unsignedflags;/*文件状态标志*/
charfd;/*文件描述符(句柄)*/
unsignedcharhold;/*如无缓冲区不读取字符*/
shortbsize;/*缓冲区的大小*/
unsignedchar*buffer;/*数据缓冲区的位置*/
unsignedar*curp;/*指针,当前的指向*/
unsignedistemp;/*临时文件,指示器*/
shorttoken;/*用于有效性检查*/
}FILE;
为管理你打开的文件,操作系统为所有的文件创建一个打开文件信息的结构数组---文件控制块(FCB),而文件描述符就承担了访问与之对应的文件控制块的使命,他在c中就充当文件句柄。每一个文件都需要唯一的一个标识,这样才能管理若干个文件
FCB他存贮这你所有打开文件的信息,而只有通过文件句柄才能访问与之对应的FCB,从而访问你的文件.
文件句柄,就是FCB结构数组的下标
所以,通过文件指针获得文件名的操作路线:
FILE*fp;
charfd=fp->fd;
FCB*fcb;
char*filiname=fcb[fd].filiname
利用FCB(文件控制块)操作的例子见:
http://www.asme.net/blog/user/postcontent.jsp?neighborId=8747&kindLevel=1&kindId=24655&postId=40710&readSg=1
『伍』 根据某表中的特定数据,查找特定文件名表格中的数据
在表1插入如下VBA程序
Sub 文件夹2B2()
Dim fd As Object
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
'开启Excel内建的资料夹浏览方块
Set fd = Application.FileDialog(msoFileDialogFolderPicker)
If fd.Show = -1 Then
rLookIn = fd.SelectedItems(1)
Else
MsgBox "未选取资料夹"
End If
rFilename = Dir$(rLookIn & "\" & "*.xls")
Do While rFilename <> vbNullString
If InStr(rFilename, "主工作簿") = 0 Then
Workbooks.Open rLookIn & "\" & rFilename
Workbooks(rFilename).Sheets("sheet1").Activate
Range("A:A").Find(Left(rFilename, InStr(rFilename, ".") - 1)).Offset(0, 1).Value = ActiveSheet.Range("B2").Value
Application.DisplayAlerts = False
Workbooks(rFilename).Close
End If
rFilename = Dir$()
Loop
Set fd = Nothing
Set fso = Nothing
Application.DisplayAlerts = True
End Sub
运行后,会弹出一个“浏览”对话框,在“文件夹名称”处搜索你的“文件夹2”,确定。
『陆』 在c++中如何获取文件名
一、在不使用mfc的程序中获得某个目录下的所有文件名称,包括子目录。把文件名称以一个固定的程度放入一个缓冲中,这个缓冲要足够的大,能容下所有的文件名称。
函数的输入为要查找的根目录,输出为存放所有文件名称的缓冲
算法:使用递归
二、代码:
void
FindFileInDir(char*
rootDir,
char*
strRet)
{
char
fname[MAC_FILENAMELENOPATH];
ZeroMemory(fname,
MAC_FILENAMELENOPATH);
WIN32_FIND_DATA
fd;
ZeroMemory(&fd,
sizeof(WIN32_FIND_DATA));
HANDLE
hSearch;
char
filePathName[256];
char
tmpPath[256];
ZeroMemory(filePathName,
256);
ZeroMemory(tmpPath,
256);
strcpy(filePathName,
rootDir);
BOOL
bSearchFinished
=
FALSE;
if(
filePathName[strlen(filePathName)
-1]
!=
'\\'
)
{
strcat(filePathName,
"\\");
}
strcat(filePathName,
"*");
hSearch
=
FindFirstFile(filePathName,
&fd);
//Is
directory
if(
(fd.dwFileAttributes
&
FILE_ATTRIBUTE_DIRECTORY)
&&
strcmp(fd.cFileName,
".")
&&
strcmp(fd.cFileName,
"..")
)
{
strcpy(tmpPath,
rootDir);
strcat(tmpPath,
fd.cFileName);
FindFileInDir(tmpPath,
strRet);
}
else
if(
strcmp(fd.cFileName,
".")
&&
strcmp(fd.cFileName,
"..")
)
{
sprintf(fname,
"%-50.50s",
fd.cFileName);
strcat(strRet
+
strRet[strlen(strRet)]
,
fname);
}
while(
!bSearchFinished
)
{
if(
FindNextFile(hSearch,
&fd)
)
{
if(
(fd.dwFileAttributes
&
FILE_ATTRIBUTE_DIRECTORY)
&&
strcmp(fd.cFileName,
".")
&&
strcmp(fd.cFileName,
"..")
)
{
strcpy(tmpPath,
rootDir);
strcat(tmpPath,
fd.cFileName);
FindFileInDir(tmpPath,
strRet);
}
else
if(
strcmp(fd.cFileName,
".")
&&
strcmp(fd.cFileName,
"..")
)
{
sprintf(fname,
"%-50.50s",
fd.cFileName);
strcat(strRet
+
strRet[strlen(strRet)]
,
fname);
}
}
else
{
if(
GetLastError()
==
ERROR_NO_MORE_FILES
)
//Normal
Finished
{
bSearchFinished
=
TRUE;
}
else
bSearchFinished
=
TRUE;
//Terminate
Search
}
}
FindClose(hSearch);
}
『柒』 通过vbs脚本或者bat脚本,实现获取文件名和文件大小等信息并输出到Excel文档
生成到EXCEL里的不会,但是可以生成CSV文件
自己建一个VBS文件,把下面的代码扔进去。
可以自己制定路径,生成C:\1.csv文件。
dim SF,sE,tF
dim fs,oF,sT
sub getFd(fd)
wrtf fd
for each tmpFd in fd.subfolders
getFd tmpFd
next
end sub
sub wrtF(fd)
for each tmpfile in fd.files
sE.write tmpfile.name & "," & tmpfile.size & vbcrlf
next
end sub
sF = InputBox("input your path")
set fs = CreateObject("Scripting.FileSystemObject")
set oF = fs.GetFolder(sF)
tF="C:\1.csv"
if fs.FileExists(tF) then
fs.DeleteFile tF
end if
set sE = fs.OpenTextFile (tF, 8, True)
sE.write "name,size" & vbcrlf
getFd oF
sE.close
msgbox "done!"