Example #1
0
        private void HandleDownloadStarted(Browser browser, int downloadId, JSONNode info)
        {
            //Debug.Log("Download requested: " + info.AsJSON);

            var download = new Download {
                browser    = browser,
                downloadId = downloadId,
                name       = info["suggestedName"],
            };


            if (promptForFileNames)
            {
                browser.DownloadCommand(downloadId, BrowserNative.DownloadAction.Begin, null);
            }
            else
            {
                DirectoryInfo downloadFolder;
                if (string.IsNullOrEmpty(saveFolder))
                {
                    downloadFolder = new DirectoryInfo(GetUserDownloadFolder());
                }
                else
                {
                    downloadFolder = new DirectoryInfo(saveFolder);
                    if (!downloadFolder.Exists)
                    {
                        downloadFolder.Create();
                    }
                }

                var filePath = downloadFolder.FullName + "/" + new FileInfo(info["suggestedName"]).Name;
                while (File.Exists(filePath))
                {
                    var ext  = Path.GetExtension(filePath);
                    var left = Path.GetFileNameWithoutExtension(filePath);

                    var time = DateTime.Now.ToString("yyyy-MM-dd hh_mm_ss");
                    filePath = downloadFolder.FullName + "/" + left + " " + time + ext;
                }
                browser.DownloadCommand(downloadId, BrowserNative.DownloadAction.Begin, filePath);
            }

            downloads.Add(download);
        }