Как найти расширение файла (.xls) и изменить его имя?C # - PullRequest
0 голосов
/ 05 октября 2018

Продукт, который я использую, представляет собой Beijer HMI, в настоящее время я могу создать отчет и сохранить его в известном месте (мой рабочий стол - C: \ Users \ mrdav \ Desktop).

Мне нужноиметь возможность искать на моем рабочем столе расширение файла .xls и изменять его имя.

Когда отчет генерируется HMI, он использует дату и время, что означает, что при создании файла имя будеткаждый раз разные.

При нажатии кнопки мне нужно найти на рабочем столе файл .xls и изменить его имя на переменное.

// Это моя переменная в моей программе

string NewName = Globals.Tags.Tag1.Value;

Сгенерированный код должен находиться в следующем примере.

public partial class Screen1
{

    void Button1_Click(System.Object sender, System.EventArgs e)
    {

        // Code to be added here... 
    }


}

Надеюсь, кто-то может помочь,Я использую Windows Compact Framework, поэтому его функциональность ограничена.

По любым вопросам, пожалуйста, дайте мне знать.

Заранее спасибо,

Дейв

Ответы [ 2 ]

0 голосов
/ 06 октября 2018

Кажется, это работает ... но я знаю, что это не так аккуратно, как могло бы быть.

Любые предложения?

Спасибо всем, кто помог, попал туда в конце!

    void Button_Click(System.Object sender, System.EventArgs e)
    {
        try
        {
        // Location for new file
            string NewFileName = @"c:\users\mrdav\desktop\testfolder\";
        // Add varibale name to new file
            NewFileName += Globals.Tags.Tag1.Value;
        // add .xls extention to new file
            NewFileName += ".xls";
        //show new file name to check all ok
            MessageBox.Show (NewFileName);
        //search for .xls in known directory
            DirectoryInfo di = new DirectoryInfo(@"c:\users\mrdav\desktop");
            FileInfo[] Files = di.GetFiles("*.xls");
        // if files exist with .xls extention
            foreach(FileInfo file in Files )
            {
            // show full file name
                MessageBox.Show (file.FullName);
            //rename old file to new file name and move to new folder
                File.Move(file.FullName, NewFileName);
            }
        }
        catch (Exception ex)

        {
            MessageBox.Show (ex.ToString());
        }
    }
0 голосов
/ 05 октября 2018

Вот пример, как вы можете это сделать:

DirectoryInfo dir = new DirectoryInfo(sExportPath);
FileInfo[] Files = dir.GetFiles("*.csv"); 
foreach(FileInfo file in Files )
{
   // rename file
   System.IO.File.Move(file.FullName, GenerateNewFileName());
}
//elsewhere in the class
private string GenerateNewFileName()
{
    //here is where you implement creating or getting the filename that you want your file to be renamed to. An example might look like the below
    string serialNumber = GetSerialNumber(); //Get the serial number that you talked about in the question. I've made it a string, but it could be an int (it should be a string)
    return Path.ChangeExtension(serialNumber,".xls"); //to use path you will need a using statement at the top of your class file 'using System.IO'
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...