Q: C# pass file path to other methods How do I pass a file path taken from a dropped file to be the path in another function/method?
In a C# windows forms program, I have listbox I can drag and drop a file into, and it displays the file path in that list box:
 public Form1()
        {
            InitializeComponent();
            this.listBox1.DragDrop += new
           System.Windows.Forms.DragEventHandler(this.listBox1_DragDrop);
            this.listBox1.DragEnter += new
                       System.Windows.Forms.DragEventHandler(this.listBox1_DragEnter);
        }
        // drag and drop process
        private void listBox1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
        {
            var files = (string[])e.Data.GetData(DataFormats.FileDrop);
            if (files.Length == 1 && listBox1.Items.Count == 0)
            {
                e.Effect = DragDropEffects.All;
            }
            else
            {
                e.Effect = DragDropEffects.None;
            }
        }
        private void listBox1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
        {
            string[] s = (string[])e.Data.GetData(DataFormats.FileDrop, false);
            int i;
            for (i = 0; i < s.Length; i++)
                listBox1.Items.Add(s[i]);
        }

In another part of the program, firing on a button push, I can unzip all files within a set directory, but I want that directory to be what I dropped in the listbox above, not something set permanently in the code.
        public static void MyMethod3()
        {
            string startPath = @"C:\testfolder\testprop\practicefolder\";
            string extractPath = @"C:\testfolder\testprop\practicefolder\unzippedstuff";
            Directory.GetFiles(startPath, "*.zip", SearchOption.AllDirectories).ToList()
                .ForEach(zipFilePath =>
                {
                    var extractPathForCurrentZip = Path.Combine(extractPath, Path.GetFileNameWithoutExtension(zipFilePath));
                    if (!Directory.Exists(extractPathForCurrentZip))
                    {
                        Directory.CreateDirectory(extractPathForCurrentZip);
                    }
                    ZipFile.ExtractToDirectory(zipFilePath, extractPathForCurrentZip);
                });
        }

I actually want to pass that same path to a few other functions/methods/processes at the same time, but this seemed like the cleanest example.
Sorry if it's a stupid/easy question, or if I'm doing a number of things horribly wrong. I've tried a ton of things I find that look like they could work, but without success.

A: Make a field and use it as a variable so it can be available for the whole class

A: I ended up following this answer: How to make a variable available to all classes in XNA/monogame?

"Just create a static class where you will store all your global variables and it will be accessible from all your classes."

    public static class MyGlobals
    {
        public static string finalPathForWork { get; set; }
    }

I'm sure it's not the best way to do it, but it worked for now.
