예제 #1
0
        private void  getfileinfo(string file)
        {
            fileData data = box.getFileInfo(file);

            filename.InnerHtml = "<b>File name: </b>" + data.fileName;
            size.InnerHtml     = "<b>Size: </b>" + data.fileSize;
            creator.InnerHtml  = "<b>Craetion time: </b>" + data.fileCreator;
        }
예제 #2
0
파일: Program.cs 프로젝트: bopopescu/QAmuse
        private static string GetfileData(string file)
        {
            var time         = Duration(file) * 1000;
            var videoEndTime = DatetimeToTimestamp(File.GetCreationTime(file));

            var data = new fileData()
            {
                video_url = GetCleanFileName(file).Trim(),
                ts_stop   = (videoEndTime * 1000).ToString(),
                ts_start  = ((videoEndTime * 1000 - (time))).ToString()
            };

            return(JsonConvert.SerializeObject(data));
        }
예제 #3
0
    /// <summary>
    /// 读取地址信息
    /// </summary>
    /// <param name="fileInfo"></param>
    /// <returns></returns>
    public static fileData ReadFile(string fileInfo)
    {
        System.IO.StringReader stringReader = new System.IO.StringReader(fileInfo);
        //stringReader.Read(); // 跳过 BOM
        System.Xml.XmlReader reader = System.Xml.XmlReader.Create(stringReader);
        XmlDocument          myXML  = new XmlDocument();

        myXML.LoadXml(stringReader.ReadToEnd());
        XmlElement Xmlroot = myXML.DocumentElement;
        XmlElement item    = Xmlroot["file"] as XmlElement;
        fileData   file    = new fileData();

        file.file     = item.GetAttribute("real_file");
        file.fileName = item.GetAttribute("file_name");
        return(file);
    }
예제 #4
0
        public ActionResult Download(fileData fileData) //下載
        {
            string fileName = fileData.YT_name;
            string id       = fileData.id.ToString();
            string type     = fileData.type;

            //Server端路徑
            string filePath = Server.MapPath($@"..\Download\{id}.{type}"); //相對路徑

            FileInfo fileInfo = new FileInfo(filePath);

            Response.Clear();
            Response.ClearContent();
            Response.ClearHeaders();
            Response.AddHeader("Content-Disposition", "attachment;filename =" + $"{fileName}.{type}"); //下載檔案名稱
            Response.AddHeader("Content-Length", fileInfo.Length.ToString());
            Response.AddHeader("Content-Transfer-Encoding", "binary");
            Response.ContentType     = "application/octet-stream";
            Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
            Response.WriteFile(fileInfo.FullName);
            Response.Flush();
            Response.End();
            return(View());
        }
예제 #5
0
        private static string GetfileData(string file)
        {
            var time = Duration(file) * 1000;
            var videoEndTime = DatetimeToTimestamp(File.GetCreationTime(file));

            var data = new fileData()
            {
                video_url = GetCleanFileName(file).Trim(),
                ts_stop = (videoEndTime * 1000).ToString(),
                ts_start = ((videoEndTime * 1000 - (time))).ToString()
            };

            return JsonConvert.SerializeObject(data);
        }
예제 #6
0
        public ActionResult NFU(fileData postData)
        {
            string url  = postData.YT_url;
            string type = postData.type;

            if (url.IndexOf(@"https://www.youtube.com/") == -1) //檢查Url是否有包含https://www.youtube.com/
            {
                ViewData["noUrl"]  = "請輸入正確的網址";
                ViewData["change"] = false;
                return(View());
            }

            //進入python檔所在目錄
            string cmd = @"cd C:\Users\hankh\Desktop\ASP_NET_MVC\0506Work_MVC\0506Work_MVC\Python";

            //-------------------------------判斷是單支影片還是影片清單---------------------------------------
            string cmd_py = "";

            if (url.IndexOf("&list=") == -1) //-1代表沒有包含
            {
                cmd_py = $@"python 0506Work.py --sub {type} --url {url} --name 1 & exit";
            }
            else
            {
                string todo = url.Replace("&list=", "666=");
                cmd_py = $@"python 0506Work_list.py --sub {type} --url {todo} & exit";
            }
            //-------------------------------------------------------------------------------------------------
            //python 0506Work.py --sub mp4 --url https://www.youtube.com/watch?v=t7iExt2OXfc --name 1

            Process p = new Process();

            p.StartInfo.UseShellExecute        = false;
            p.StartInfo.RedirectStandardOutput = true;
            p.StartInfo.FileName = "cmd.exe";
            p.StartInfo.RedirectStandardInput = true;
            p.Start();

            StreamWriter myStreamWriter = p.StandardInput;

            myStreamWriter.WriteLine(cmd);
            myStreamWriter.WriteLine(cmd_py);
            myStreamWriter.Close();


            //-----------------------------------取得影片名稱,並存入串列----------------------------------------
            string bigstr = p.StandardOutput.ReadToEnd();                              //取得cmd文字

            string[] NSelect = Regex.Split(bigstr, "--分割--", RegexOptions.IgnoreCase); //正規表示式做分割

            int             item     = 1;
            List <fileData> fileData = new List <fileData>();

            for (int x = 0; x < NSelect.Count(); x++)
            {
                if (NSelect[x].IndexOf("\r\n") != -1)
                {
                    continue;
                }

                fileData.Add(new fileData
                {
                    id      = item, //id由1開始,因為儲存在Server端的影片是1,2,3,4...命名,以利前端讀取
                    YT_url  = url,
                    type    = type,
                    YT_name = NSelect[x],
                });
                item++;
            }
            //----------------------------------------------------------------------------------------------------
            p.WaitForExit(); //等待程式執行完畢,並Exit
            p.Close();       //釋放Process記憶體

            ViewData["change"] = true;
            ViewData["type"]   = type;
            return(View(fileData));
        }
예제 #7
0
        List <fileData> CheckUpdateFiles(string clientVersion)
        {
            try
            {
                //解析客户端
                string[]  clientFiles = clientVersion.Split('|');//文件名,大小,时间
                ArrayList clientList  = new ArrayList(clientFiles);

                //开始比较两边的数据
                List <fileData> list      = new List <fileData>();
                string[]        files     = Directory.GetFiles(clsConfig.appPath, "*.*", SearchOption.AllDirectories);
                ArrayList       listFiles = new ArrayList(files);
                if (File.Exists("set.xml"))
                {
                    listFiles.Add("set.xml");
                }
                for (int i = 0; i < listFiles.Count; i++)
                {
                    bool IsFind = false;
                    for (int j = 0; j < clientList.Count; j++)
                    {
                        if (listFiles[i].ToString().ToUpper() == clientList[j].ToString().Split('*')[0].ToUpper())
                        {
                            //如果找到了就开始比较时间,简单点,直接比较时间一不一样,不一样就添加到更新列表
                            FileInfo info = new FileInfo(listFiles[i].ToString());
                            //string str1 = info.LastWriteTime.ToString("yyyyMMddHHmmss");
                            //string str2 = clientList[j].ToString().Split('*')[1];
                            if (info.LastWriteTime.ToString("yyyyMMddHHmmss") != clientList[j].ToString().Split('*')[1])
                            {
                                fileData data = new fileData();
                                data.fileName   = listFiles[i].ToString();
                                data.fileLength = info.Length.ToString();
                                data.fileTime   = info.LastWriteTime.ToString("yyyy-MM-dd HH:mm:ss");
                                list.Add(data);

                                IsFind = true;
                                clientList.RemoveAt(j);
                                break;
                            }
                            else
                            {
                                IsFind = true;
                                clientList.RemoveAt(j);
                                break;
                            }
                        }
                    }
                    if (!IsFind)
                    {
                        FileInfo info = new FileInfo(listFiles[i].ToString());
                        fileData data = new fileData();
                        data.fileName   = listFiles[i].ToString();
                        data.fileLength = info.Length.ToString();
                        data.fileTime   = info.LastWriteTime.ToString("yyyy-MM-dd HH:mm:ss");
                        list.Add(data);
                    }
                }

                return(list);
            }
            catch (Exception)
            {
                throw;
            }
        }