• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 258
  • Last Modified:

how to get the file with certain name in a directory which contains many files

I have to open a single file(to read data from it)  from a directory which hundreds of files which contains certain character like  "new" how to do that ?
0
panthi
Asked:
panthi
1 Solution
 
AndyAinscowCommented:
  FileStream^ fs = File::OpenRead( pathOfIleGoesHere );
0
 
panthiAuthor Commented:
i need to open the file(from a directory with many files)  which contains the name new in the file name? can you please give code example?
directory="c:\test\"
no of files in it are 100 and one of the file name is
"te****_new.csv" how do i pick that up
thanks for your help
0
 
wdosanjosCommented:
Please try:

String^ directory="c:\test\";
array<String^>^files = Directory::GetFiles( directory, "te*_new.csv" ); // or "te????_new.csv", if exactly 4 chars

if (files->Length > 0)
{
	FileStream^ fs = File::OpenRead( files[0] );

	// read the file here
}

Open in new window

0
 
sr75Commented:
Here is how you can get all the files in a particular directory.   You would just need some logic on what to do with the name of the file (i.e. something to compare it to)
On Error Resume Next

Set objFSO = CreateObject("Scripting.FileSystemObject")
objStartFolder = "C:\test"

Set objFolder = objFSO.GetFolder(objStartFolder)

Set colFiles = objFolder.Files
For Each objFile in colFiles
	Wscript.Echo objFile.Name
Next

Open in new window

0
 
AndyAinscowCommented:
Extract from the help files about Directory::GetFiles (with a minor modification)

using namespace System;
using namespace System::IO;
int main()
{
   try
   {
      
      // Only get files that begin with the letter "c."
      array<String^>^dirs = Directory::GetFiles( "c:\\Mydir\\MySubdir\\", "*new*.*" );  //Find all files with 'new' somewhere in the file name
      Console::WriteLine( "The number of files starting with c is {0}.", dirs->Length );
      Collections::IEnumerator^ myEnum = dirs->GetEnumerator();
      while ( myEnum->MoveNext() )
      {
         Console::WriteLine( myEnum->Current );
      }
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( "The process failed: {0}", e );
   }

}

Open in new window



Note you need a path with double backslashes: c:\\Mydir\\MySubdir\\ because a single backslash instructs the next character is a special character.

Once you identify which file you want to read from then
FileStream^ fs = File::OpenRead( pathOfFileGoesHere );
can be used to open a filestream to read it - look at the OpenRead method in help for some example code

0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now