private void ExtractFiles() { //Get filenames being dragged log.Debug("Getting filenames"); string[] filenames = DataObjectHelper.GetFilenames(this.innerData); log.DebugFormat("Filenames: {0}", string.Join(",", filenames)); //Get temporary folder log.Debug("Creating temp folder"); string tempPath = FileUtility.GetTempPath(); log.DebugFormat("Temp folder: {0}", tempPath); //Save files to temporary directory tempFilenames = new string[filenames.Length]; for (int fileIndex = 0; fileIndex < filenames.Length; fileIndex++) { tempFilenames[fileIndex] = FileUtility.GetUniqueFilename(Path.Combine(tempPath, filenames[fileIndex])); log.DebugFormat("Extracting file {0}", filenames[fileIndex]); using (FileStream fs = new FileStream(tempFilenames[fileIndex], FileMode.Create)) { DataObjectHelper.ReadFileContents(this.innerData, fileIndex, fs); } } }