1

フォルダからxlsxファイルを1つずつ読みたい。現在、ボタンを使用して1つのファイルを参照していますが、このボタンを使用して、ファイルが含まれているフォルダーを参照したいと思います。したがって、このフォルダを選択すると、プログラムはフォルダ内のすべてのファイルを1つずつ自動的に実行する必要があります。

これが私のコードです:

class RatWalk 
{ 
    public List steps = new List();

    // reads data from excel file
    public void LoadFromFile(String fileName)                       
    {
        steps.Clear();

        XlsFile file = new XlsFile(fileName);
        try
        {
            //everything I want to do
        }
        catch
        {
        } 
    }

    private void InitializeComponent()                             
    {
        EventHandler handler = new EventHandler(OnClick);
        button.Text = "Browse for the XLS file";                    
        // button properties                                       
        this.Controls.Add(button);
    }

    // Browses for the file and loads the selected Excel file
    private void OnClick(object sender, EventArgs e)            
    {
        OpenFileDialog fileDialog = new OpenFileDialog();
        if (fileDialog.ShowDialog() != DialogResult.OK)
            return;
        ratWalk.LoadFromFile(fileDialog.FileName);

        // Whatever I want to do   
    }
}

ボタンをクリックしてフォルダを選択すると、フォルダ内のすべてのファイルが1つずつ実行されるように変更したいと思います。

4

2 に答える 2

3

これは、選択したフォルダー内の各 xlsx ファイルに対して機能します。

string selectedFolder = string.Empty;
        FolderBrowserDialog selectFolderDialog = new FolderBrowserDialog();
        if (selectFolderDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            selectedFolder = selectFolderDialog.SelectedPath;
            DirectoryInfo dir = new DirectoryInfo(selectedFolder);
            foreach (var file in dir.GetFiles("*.xlsx"))
            {
                ratWalk.LoadFromFile(file.FullName);
                //
            }
        }
于 2012-12-18T13:30:37.743 に答える
2

これを試すことができます。これは役に立ちます

 FolderBrowserDialog fi = new FolderBrowserDialog();
 DialogResult result = fi.ShowDialog();
 if (result == DialogResult.OK)
 {
   string[] files = Directory.GetFiles(fi.SelectedPath);
 }

files 配列には、フォルダー内のすべてのファイルが含まれます。プロセスにファイル配列を使用します...

于 2012-12-18T13:25:02.330 に答える