You cannot do that. The file name is specified at construction and cannot be changed later.
C# Change current FileInfo file?
Question
I'd like to change the file that the FileInfo object is currently using. Let say I want to loop through 1000 files.
FileInfo myFile = new FileInfo("myfile.txt");
myFile.ChangeFile("myfile2.txt");
How can I do this? Was hoping for .FileName =, but it's readonly.
Solution
OTHER TIPS
You can't do this in c# you don't have a built-in function use this function instead
private void ChangeFiles(string fPath, string fNewName)
{
string fExt;
string fFromName;
string fToName;
int i = 1;
//copy all files from fPath to files array
FileInfo[] files = new DirectoryInfo(fPath).GetFiles();
//loop through all files
foreach (var f in files)
{
//get the filename without the extension
fFromName = Path.GetFileNameWithoutExtension(f.Name);
//get the file extension
fExt = Path.GetExtension(f.Name);
//set fFromName to the path + name of the existing file
fFromName = string.Format("{0}{1}", fPath, f.Name);
//set the fToName as path + new name + _i + file extension
fToName = string.Format("{0}{1}_{2}{3}", fPath, fNewName,i.ToString(), fExt);
//rename the file by moving to the same place and renaming
File.Move(fFromName, fToName);
//increment i
i++;
}
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow