private void DownloadByName() { if (m_DownLoadFileHandle > 0) { timerDownload.Stop(); XMSDK.H264_DVR_StopGetFile(m_DownLoadFileHandle); m_DownLoadFileHandle = 0; progressBarDownloadPos.Value = 0; btnDownload.Text = "Download"; return; } string csFileName; //inCount; //if ( nSelected < 0 ) //{ // MessageBox.Show("SelectFile !"); // return; //} H264_DVR_FILE_DATA FileInfo = (H264_DVR_FILE_DATA)listFile.FocusedItem.Tag; string strSaveName; //strSaveName.Format("c:\\record\\record.h264"); int nSelectedIndex = comboDev.SelectedIndex; if (nSelectedIndex < 0) { MessageBox.Show("SelectDevice !"); return; } DEV_INFO DevTemp = (DEV_INFO)((ComboxItem)comboDev.SelectedItem).Value; string strInitDir; strInitDir = Application.StartupPath; if (strInitDir.EndsWith("\\")) { strInitDir += "Download"; } else { strInitDir += "\\Download"; } DirectoryInfo dir = new DirectoryInfo(strInitDir); //if ( dir.Attributes ) { dir.Create(); } string strFileTpye = "h264"; string strFileName = FileInfo.sFileName; if (strFileName.EndsWith(".h264")) { strFileTpye = "h264"; } else { strFileTpye = "jpg"; } strFileName = string.Format("{0}_{1}_{2}-{3}_{4}{5}{6}{7}.{8}", DevTemp.szDevName, FileInfo.ch + 1, FileInfo.stBeginTime.year, FileInfo.stBeginTime.month, FileInfo.stBeginTime.day, FileInfo.stBeginTime.hour, FileInfo.stBeginTime.minute, FileInfo.stBeginTime.second, strFileTpye); SaveFileDialog dlg = new SaveFileDialog(); dlg.AddExtension = true; dlg.CheckPathExists = true; dlg.DefaultExt = ".h264"; dlg.Filter = "All File(*.h264;*.jpg)|*.*||"; dlg.InitialDirectory = strInitDir; //默认路径 dlg.FileName = strFileName; int count = listFile.SelectedItems[0].Index; if (dlg.ShowDialog() == DialogResult.OK) { strSaveName = dlg.FileName; //m_lSaveHandle = H264_DVR_GetFileByName(m_lLoginID, pstrFileInfo,strSaveName.GetBuffer(0),SDKDownLoadPosCallback,(DWORD)this); m_DownLoadFileHandle = XMSDK.H264_DVR_GetFileByName(m_lLoginID, ref FileInfo, strSaveName, null, 0, null); if (m_DownLoadFileHandle >= 0) { progressBarDownloadPos.Value = 0; btnDownload.Text = "Stop"; //update the progress control //SetTimer(1,0,NULL); } else { string sTemp = string.Format("dowload fail ERROR = {0}", XMSDK.H264_DVR_GetLastError()); MessageBox.Show(sTemp); } } }