问题
I have to get file in a folder. My process can work in Batch.
My code is this:
Io file;
FileIoPermission perm;
int handle;
Filename fileName;
[handle, filename] = WINAPI::findFirstFile( myFilePatch + "\\*.txt");
fileOpen = strFmt (myFilePatch + "\\" + filename);
if (filename)
{
perm = new FileIoPermission(filename, 'r');
perm.assert();
file = new TextIo(filename, 'r', 65001);
}
//etc... other code
// I go on to find another file
filename = WinAPI::findNextFile(handle);
fileOpen = strFmt (myFilePatch + "\\" + filename);
if (filename)
{
// open file....
}
My problem is for WinAPI.findFirstFile
and WinAPI::findNextFile
I have an error.
How can I search in a folder,in batch process, the files ?
Thansk all,
enjoy!
回答1:
Use System.IO.DirectoryInfo and loop through the files with a for-loop. Just replace the folder path below with your folder' location, and it will generate a list of all the files inside the folder.
static void loopDirectory(Args _args)
{
System.IO.DirectoryInfo directory;
System.IO.FileInfo[] files;
System.IO.FileInfo file;
InteropPermission permission;
Filename tmpFilePath;
Filename tmpFileNameShort;
Filename tmpFileExt;
str fileNameTemp;
counter filesCount;
counter loop;
permission = new InteropPermission(InteropKind::ClrInterop);
permission.assert();
directory = new System.IO.DirectoryInfo(@"C:\Users...");
files = directory.GetFiles();
filesCount = files.get_Length();
for (loop = 0; loop < filesCount; loop++)
{
file = files.GetValue(loop);
fileNameTemp = file.get_FullName();
[tmpFilePath, tmpFileNameShort, tmpFileExt] = fileNameSplit(fileNameTemp);
info(tmpFileNameShort);
}
CodeAccessPermission::revertAssert();
}
来源:https://stackoverflow.com/questions/34526449/how-to-get-file-in-folder-in-batch-process