public static InternalGetTempFileName ( ) : string | ||
Résultat | string |
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)); }
// 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(); }
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); }
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)); }