Ejemplo n.º 1
0
        private static FileDetailInfo StringToFileDetailInfo(string content, out FileListParseError errorType)
        {
            errorType = FileListParseError.Null;
            string[] detailInfos = content.Split(VariableSeparator);
            if (detailInfos.Length != 4)
            {
                errorType = FileListParseError.DetailInfoElementCountError;
                return(null);
            }
            FileDetailInfo info = new FileDetailInfo();

            info.fileName = detailInfos[0];
            info.filePath = detailInfos[1];
            info.fileMd5  = detailInfos[2];
            if (!long.TryParse(detailInfos [3], out info.fileLength))
            {
                errorType = FileListParseError.DetailInfoLengthError;
                return(null);
            }
            return(info);
        }
Ejemplo n.º 2
0
        public static Dictionary <string, FileDetailInfo> StringToFileList(string content, out FileListParseError error)
        {
            error = FileListParseError.Null;
            Dictionary <string, FileDetailInfo> retList = new Dictionary <string, FileDetailInfo> ();

            string[] detailInfos = content.Split(DetailSeparator);
            //因为在序列化时,每一条信息后边都追加了一个DetailSeparator,所以detailInfos数组最后一条回事null
            for (int i = 0; i < detailInfos.Length - 1; ++i)
            {
                if (string.IsNullOrEmpty(detailInfos [i]))
                {
                    error = FileListParseError.DetailInfoIsNull;
                    return(null);
                }
                FileDetailInfo info = StringToFileDetailInfo(detailInfos [i], out error);
                if (null == info)
                {
                    return(null);
                }
                if (retList.ContainsKey(info.fileName))
                {
                    error = FileListParseError.FileRepeat;
                    return(null);
                }
                retList.Add(info.fileName, info);
            }
            return(retList);
        }