public static void CreatePackFromDirectory()
        {
            string sourceFolder = EditorUtility.OpenFolderPanel("Select folder that contains the assets you wish to pack", "", "");

            if (sourceFolder == null)
            {
                return;
            }

            if (DialogUtils.DirectoryIsEmpty(sourceFolder))
            {
                bool dialog = DialogUtils.DisplayCancelableDialog("Invalid Directory", "Please select a directory that contains files.");
                if (dialog)
                {
                    CreatePackFromDirectory();
                }

                return;
            }

            string[] files = Directory.GetFiles(sourceFolder);

            var destinationFile = EditorUtility.SaveFilePanel(
                "Select destination to save created pack file",
                sourceFolder,
                "Assets_256",
                "pack");

            if (destinationFile == null)
            {
                return;
            }

            CreatePackFromFiles(files, destinationFile);
            DialogUtils.DisplayDialog("Export Successful", "Successfully packed and saved " + files.Length + " assets to " + destinationFile);
        }