『壹』 怎麼用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!"