InternalGetTempFileName() public static méthode

public static InternalGetTempFileName ( ) : string
Résultat string
Exemple #1
0
 public long TruncateBackward(uint diskNumber, long offset)
 {
     if (diskNumber >= 99)
     {
         throw new ArgumentOutOfRangeException("diskNumber");
     }
     if (rwMode != RwMode.Write)
     {
         _exceptionPending = true;
         throw new ZipException("bad state.");
     }
     if (diskNumber == CurrentSegment)
     {
         return(_innerStream.Seek(offset, SeekOrigin.Begin));
     }
     if (_innerStream != null)
     {
         _innerStream.Dispose();
         if (File.Exists(_currentTempName))
         {
             File.Delete(_currentTempName);
         }
     }
     for (uint num = CurrentSegment - 1; num > diskNumber; num--)
     {
         string path = _NameForSegment(num);
         if (File.Exists(path))
         {
             File.Delete(path);
         }
     }
     CurrentSegment = diskNumber;
     for (int i = 0; i < 3; i++)
     {
         try
         {
             _currentTempName = SharedUtilities.InternalGetTempFileName();
             File.Move(CurrentName, _currentTempName);
         }
         catch (IOException)
         {
             if (i == 2)
             {
                 throw;
             }
             continue;
         }
         break;
     }
     _innerStream = new FileStream(_currentTempName, FileMode.Open);
     return(_innerStream.Seek(offset, SeekOrigin.Begin));
 }
Exemple #2
0
 // Token: 0x0600034A RID: 842 RVA: 0x000187EC File Offset: 0x000169EC
 public static void CreateAndOpenUniqueTempFile(string dir, out Stream fs, out string filename)
 {
     for (int i = 0; i < 3; i++)
     {
         try
         {
             filename = Path.Combine(dir, SharedUtilities.InternalGetTempFileName());
             fs       = new FileStream(filename, FileMode.CreateNew);
             return;
         }
         catch (IOException)
         {
             if (i == 2)
             {
                 throw;
             }
         }
     }
     throw new IOException();
 }
Exemple #3
0
        public long TruncateBackward(uint diskNumber, long offset)
        {
            // Console.WriteLine("***ZSS.Trunc to disk {0}", diskNumber);
            // Console.WriteLine("***ZSS.Trunc:  current disk {0}", CurrentSegment);
            if (diskNumber >= 99)
            {
                throw new ArgumentOutOfRangeException("diskNumber");
            }

            if (rwMode != RwMode.Write)
            {
                _exceptionPending = true;
                throw new ZipException("bad state.");
            }

            // Seek back in the segmented stream to a (maybe) prior segment.

            // Check if it is the same segment.  If it is, very simple.
            if (diskNumber == CurrentSegment)
            {
                var x = _innerStream.Seek(offset, SeekOrigin.Begin);
                // workitem 10178
                Ionic.Zip.SharedUtilities.Workaround_Ladybug318918(_innerStream);
                return(x);
            }

            // Seeking back to a prior segment.
            // The current segment and any intervening segments must be removed.
            // First, close the current segment, and then remove it.
            if (_innerStream != null)
            {
#if NETCF
                _innerStream.Close();
#else
                _innerStream.Dispose();
#endif
                if (File.Exists(_currentTempName))
                {
                    File.Delete(_currentTempName);
                }
            }

            // Now, remove intervening segments.
            for (uint j = CurrentSegment - 1; j > diskNumber; j--)
            {
                string s = _NameForSegment(j);
                // Console.WriteLine("***ZSS.Trunc:  removing file {0}", s);
                if (File.Exists(s))
                {
                    File.Delete(s);
                }
            }

            // now, open the desired segment.  It must exist.
            CurrentSegment = diskNumber;

            // get a new temp file, try 3 times:
            for (int i = 0; i < 3; i++)
            {
                try
                {
                    _currentTempName = SharedUtilities.InternalGetTempFileName();
                    // move the .z0x file back to a temp name
                    File.Move(CurrentName, _currentTempName);
                    break; // workitem 12403
                }
                catch (IOException)
                {
                    if (i == 2)
                    {
                        throw;
                    }
                }
            }

            // open it
            _innerStream = new FileStream(_currentTempName, FileMode.Open);

            var r = _innerStream.Seek(offset, SeekOrigin.Begin);

            // workitem 10178
            Ionic.Zip.SharedUtilities.Workaround_Ladybug318918(_innerStream);

            return(r);
        }
Exemple #4
0
        public long TruncateBackward(uint diskNumber, long offset)
        {
            // Console.WriteLine("***ZSS.Trunc to disk {0}", diskNumber);
            // Console.WriteLine("***ZSS.Trunc:  current disk {0}", CurrentSegment);

            if (rw != 2)
            {
                throw new ZipException("bad state.");
            }

            // Seek back in the segmented stream to a (maybe) prior segment.

            // Check if it is the same segment.  If it is, very simple.
            if (diskNumber == CurrentSegment)
            {
                return(_innerStream.Seek(offset, SeekOrigin.Begin));
            }

            // Seeking back to a prior segment.
            // The current segment and any intervening segments must be removed.
            // First, remove the current segment.
            if (_innerStream != null)
            {
                _innerStream.Close();
                if (File.Exists(_currentTempName))
                {
                    File.Delete(_currentTempName);
                }
            }

            // Now, remove intervening segments.
            for (uint j = CurrentSegment - 1; j > diskNumber; j--)
            {
                string s = _NameForSegment(j);
                // Console.WriteLine("***ZSS.Trunc:  removing file {0}", s);
                if (File.Exists(s))
                {
                    File.Delete(s);
                }
            }

            // now, open the desired segment.  It must exist.
            CurrentSegment = diskNumber;

            // get a new temp file, try 3 times:
            for (int i = 0; i < 3; i++)
            {
                try
                {
                    _currentTempName = SharedUtilities.InternalGetTempFileName();
                    File.Move(CurrentName, _currentTempName);  // move the .z0x file back to a temp name
                }
                catch (IOException)
                {
                    if (i == 2)
                    {
                        throw;
                    }
                }
            }

            _innerStream = new FileStream(_currentTempName, FileMode.Open);

            return(_innerStream.Seek(offset, SeekOrigin.Begin));
        }