Beispiel #1
0
        public List <FileListItem> GetFileList(LoginUser loginUser)
        {
            DirectoryInfo d = new DirectoryInfo(_Path);

            System.IO.FileInfo[] arrfi = null;
            FileListItem         itm   = null;
            var arrSort = new List <FileListItem>();
            int ix      = 0;

            if (d.Exists)
            {
                //フォルダ内のファイル一覧を取得
                arrfi = d.GetFiles();
                foreach (FileInfo fi in arrfi)
                {
                    //*.ifo, *.scc, "Thumbs.db"は除外
                    if (fi.Extension.ToLower() != ".ifo" &&
                        fi.Extension.ToLower() != ".scc" &&
                        fi.Name.ToLower() != "thumbs.db")
                    {
                        itm = GetItemProps(fi, loginUser);
                        arrSort.Insert(ix, itm);
                        ix += 1;
                    }
                }

                //ソート順に従ってソートする。
                //arrSort.TrimToSize();
                arrSort.Sort();
            }

            return(arrSort);
        }
Beispiel #2
0
        public FileListItem GetItemProps(FileInfo fi, LoginUser loginUser)
        {
            var itm = new FileListItem(this);

            itm.Filename   = fi.Name;
            itm.Size       = fi.Length;
            itm.UploadDate = fi.LastWriteTime;
            //itm.UploadDateStr = itm.UploadDate.ToString(loginUser.date_format + " " + loginUser.time_format);
            itm.UploadDateStr = itm.UploadDate.ToString("yyyy/MM/dd HH:mm:ss");

            var fname = itm.FullpathInfo();
            var fi2   = new FileInfo(fname);

            if (fi2.Exists)
            {
                var sr = new StreamReader(fname, System.Text.Encoding.Default); //Encodingを指定しないと日本語が化ける。
                itm.Description = sr.ReadLine();
                if (sr.Peek() > -1)
                {
                    itm.UploadUser = sr.ReadLine();
                }
                if (sr.Peek() > -1)
                {
                    itm.DispOrder = TypeHelper.GetInt(sr.ReadLine());
                }
                sr.Close();
            }

            return(itm);
        }
Beispiel #3
0
        //DispOrder, UpdateDate, Filenameの順にソートする。
        public int CompareTo(object obj)
        {
            FileListItem itm = default(FileListItem);

            if (object.ReferenceEquals(obj.GetType(), typeof(FileListItem)))
            {
                itm = (FileListItem)obj;

                if (this.DispOrder == itm.DispOrder)
                {
                    //if (this.UploadDate == itm.UploadDate) {
                    return(this.Filename.CompareTo(itm.Filename));
                    //} else {
                    //    return this.UploadDate.CompareTo(itm.UploadDate);
                    //}
                }
                else
                {
                    return(this.DispOrder.CompareTo(itm.DispOrder));
                }
            }
            else
            {
                return(0);
            }
        }
Beispiel #4
0
        public FileListItem CreateNewItem(string sUploadUser)
        {
            var itm = new FileListItem(this);

            itm.UploadUser = sUploadUser;
            return(itm);
        }
Beispiel #5
0
        public void SaveDescription(FileListItem itm)
        {
            //一旦ifoファイルを削除する。
            var fname = itm.FullpathInfo();
            var fi    = new FileInfo(fname);

            if (fi.Exists)
            {
                fi.Delete();
            }

            //新しいDescriptionで再度作成する。
            var sw = new StreamWriter(fname, false, System.Text.Encoding.Default);

            sw.WriteLine(itm.Description);
            sw.WriteLine(itm.UploadUser);
            sw.WriteLine(itm.DispOrder);
            sw.Close();
            sw = null;
        }