Ejemplo n.º 1
0
 public MultiFile(String[] segmentPath, long[] segmentSize, FileParameters parameters)
 {
     this.parameters = parameters;
     segment         = new MultiFileSegment[segmentPath.Length];
     for (int i = 0; i < segment.Length; i++)
     {
         MultiFileSegment seg = new MultiFileSegment();
         seg.f      = new OSFile(segmentPath[i], parameters);
         seg.size   = segmentSize[i];
         fixedSize += seg.size;
         segment[i] = seg;
     }
     fixedSize -= segment[segment.Length - 1].size;
     segment[segment.Length - 1].size = long.MaxValue;
 }
Ejemplo n.º 2
0
        public MultiFile(String filePath, FileParameters parameters)
        {
#if WINRT_NET_FRAMEWORK
            System.Threading.Tasks.Task <Stream> t = ApplicationData.Current.LocalFolder.OpenStreamForReadAsync(filePath);
            t.Wait();
            StreamReader reader = new StreamReader(t.Result);
#else
            StreamReader reader = new StreamReader(filePath);
#endif
            this.parameters = parameters;
            segment         = new MultiFileSegment[0];
            string line;
            while ((line = reader.ReadLine()) != null)
            {
                int sepPos;
                MultiFileSegment seg = new MultiFileSegment();
                string           path;
                if (line.StartsWith("\""))
                {
                    sepPos = line.IndexOf('"', 1);
                    path   = line.Substring(1, sepPos - 1);
                }
                else
                {
                    sepPos = line.IndexOf(' ');
                    path   = sepPos < 0 ? line : line.Substring(0, sepPos);
                }
                if (sepPos >= 0 && sepPos + 1 < line.Length)
                {
                    String fileLength = line.Substring(sepPos + 1).Trim();
                    if (fileLength.Length > 0)
                    {
                        seg.size = long.Parse(fileLength) * 1024; // kilobytes
                    }
                }
                fixedSize += seg.size;
                seg.f      = new OSFile(path, parameters);
                MultiFileSegment[] newSegment = new MultiFileSegment[segment.Length + 1];
                Array.Copy(segment, 0, newSegment, 0, segment.Length);
                newSegment[segment.Length] = seg;
                segment = newSegment;
            }

            fixedSize -= segment[segment.Length - 1].size;
            segment[segment.Length - 1].size = long.MaxValue;
        }
Ejemplo n.º 3
0
 public MultiFile(MultiFileSegment[] segments)
 { 
     segment = segments;
     for (int i = 0; i < segments.Length; i++) 
     { 
          fixedSize += segments[i].size;
     }
     fixedSize -= segment[segment.Length-1].size;
     segment[segment.Length-1].size = long.MaxValue;
 }
Ejemplo n.º 4
0
        public MultiFile(String filePath, FileParameters parameters) 
        { 
#if WINRT_NET_FRAMEWORK
            System.Threading.Tasks.Task<Stream> t = ApplicationData.Current.LocalFolder.OpenStreamForReadAsync(filePath);
            t.Wait();
            StreamReader reader = new StreamReader(t.Result);
#else
            StreamReader reader = new StreamReader(filePath);
#endif
            this.parameters = parameters;
            segment = new MultiFileSegment[0];
            string line;
            while ((line = reader.ReadLine()) != null) 
            {
                int sepPos;
                MultiFileSegment seg = new MultiFileSegment();
                string path;
                if (line.StartsWith("\"")) 
                {
                    sepPos = line.IndexOf('"', 1);
                    path = line.Substring(1, sepPos-1);
                } 
                else 
                {
                    sepPos = line.IndexOf(' ');
                    path = sepPos < 0 ? line : line.Substring(0, sepPos);
                }
                if (sepPos >= 0 && sepPos+1 < line.Length) {
                    String fileLength = line.Substring(sepPos+1).Trim();
                    if (fileLength.Length > 0) 
                    { 
                        seg.size = long.Parse(fileLength)*1024; // kilobytes
                    }
                }
                fixedSize += seg.size;
                seg.f = new OSFile(path, parameters);
                MultiFileSegment[] newSegment = new MultiFileSegment[segment.Length+1];
                Array.Copy(segment, 0, newSegment, 0, segment.Length);
                newSegment[segment.Length] = seg;
                segment = newSegment;
            } 

            fixedSize -= segment[segment.Length-1].size;
            segment[segment.Length-1].size = long.MaxValue;
        }
Ejemplo n.º 5
0
 public MultiFile(String[] segmentPath, long[] segmentSize, FileParameters parameters) 
 { 
     this.parameters = parameters;
     segment = new MultiFileSegment[segmentPath.Length];
     for (int i = 0; i < segment.Length; i++) 
     { 
         MultiFileSegment seg = new MultiFileSegment();
         seg.f = new OSFile(segmentPath[i], parameters);
         seg.size = segmentSize[i];
         fixedSize += seg.size;
         segment[i] = seg;
     }
     fixedSize -= segment[segment.Length-1].size;
     segment[segment.Length-1].size = long.MaxValue;
 }