C# Stream.Flush的代码示例
通过代码示例来学习C# Stream.Flush方法
通过代码示例来学习编程是非常高效的。
1. 代码示例提供了一个具体而直观的学习环境,使初学者能够立即看到编程概念和语法的实际应用。
2. 通过分析和模仿现有的代码实例,初学者可以更好地理解编程逻辑和算法的工作原理。
3. 代码实例往往涵盖了多种编程技巧和最佳实践,通过学习和模仿这些实例,学习者可以逐步掌握如何编写高效、可读性强和可维护的代码。这对于初学者来说,是一种快速提升编程水平的有效途径。
Stream.Flush是C#的System.IO命名空间下中的一个方法, 小编为大家找了一些网络大拿们常见的代码示例,源码中的Stream.Flush() 已经帮大家高亮显示了,大家可以重点学习Stream.Flush() 方法的写法,从而快速掌握该方法的应用。
Stream.Flush的代码示例1 - CanDeleteHydratedFilesWhileTheyAreOpenForWrite()
using System.IO; [TestCase] public void CanDeleteHydratedFilesWhileTheyAreOpenForWrite() { FileSystemRunner fileSystem = FileSystemRunner.DefaultRunner; string fileName = "GVFS.sln"; string virtualPath = this.Enlistment.GetVirtualPathTo(fileName); virtualPath.ShouldBeAFile(fileSystem); using (Stream stream = new FileStream(virtualPath, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite | FileShare.Delete)) using (StreamReader reader = new StreamReader(stream)) { // First line is empty, so read two lines string line = reader.ReadLine() + reader.ReadLine(); line.Length.ShouldNotEqual(0); File.Delete(virtualPath); this.VerifyExistenceAfterDeleteWhileOpen(virtualPath, fileSystem); using (StreamWriter writer = new StreamWriter(stream)) { writer.WriteLine("newline!"); writer.Flush(); this.VerifyExistenceAfterDeleteWhileOpen(virtualPath, fileSystem); } } virtualPath.ShouldNotExistOnDisk(fileSystem); }
开发者ID:microsoft,项目名称:VFSForGit,代码行数:31,代码来源:BasicFileSystemTests.cs
在CanDeleteHydratedFilesWhileTheyAreOpenForWrite()方法中,Stream的代码示例类中的Flush的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞
Stream.Flush的代码示例2 - TryWriteTempFile()
using System.IO; ///
/// Attempts to write all data lines to tmp file /// /// Method that returns the dataLines to write as an IEnumerable /// Output parameter that's set when TryWriteTempFile catches a non-fatal exception ///True if the write succeeded and false otherwise ///If a fatal exception is encountered while trying to write the temp file, this method will not catch it. private bool TryWriteTempFile(Func> getDataLines, out Exception handledException) { handledException = null; try { using (Stream tempFile = this.fileSystem.OpenFileStream(this.tempFilePath, FileMode.Create, FileAccess.Write, FileShare.None, callFlushFileBuffers: true)) using (StreamWriter writer = new StreamWriter(tempFile)) { foreach (string line in getDataLines()) { writer.Write(line + NewLine); } tempFile.Flush(); } return true; } catch (IOException e) { handledException = e; return false; } catch (UnauthorizedAccessException e) { handledException = e; return false; } }
开发者ID:microsoft,项目名称:VFSForGit,代码行数:39,代码来源:FileBasedCollection.cs
在TryWriteTempFile()方法中,Stream的代码示例类中的Flush的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞
Stream.Flush的代码示例3 - WriteAllEntries()
using System.IO; private void WriteAllEntries(uint version, bool isFinal) { try { using (Stream indexStream = new FileStream(this.indexLockPath, FileMode.Create, FileAccess.Write, FileShare.None)) using (BinaryWriter writer = new BinaryWriter(indexStream)) { writer.Write(IndexHeader); writer.Write(EndianHelper.Swap(version)); writer.Write((uint)0); // Number of entries placeholder uint lastStringLength = 0; LsTreeEntry entry; while (this.entryQueue.TryTake(out entry, Timeout.Infinite)) { this.WriteEntry(writer, version, entry.Sha, entry.Filename, ref lastStringLength); } // Update entry count writer.BaseStream.Position = EntryCountOffset; writer.Write(EndianHelper.Swap(this.entryCount)); writer.Flush(); } this.AppendIndexSha(); if (isFinal) { this.ReplaceExistingIndex(); } } catch (Exception e) { this.tracer.RelatedError("Failed to generate index: {0}", e.ToString()); this.HasFailures = true; } }
开发者ID:microsoft,项目名称:VFSForGit,代码行数:38,代码来源:GitIndexGenerator.cs
在WriteAllEntries()方法中,Stream的代码示例类中的Flush的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞
Stream.Flush的代码示例4 - WriteLooseObject()
using System.IO; public virtual string WriteLooseObject(Stream responseStream, string sha, bool overwriteExistingObject, byte[] bufToCopyWith) { try { LooseObjectToWrite toWrite = this.GetLooseObjectDestination(sha); if (this.checkData) { try { using (Stream fileStream = this.OpenTempLooseObjectStream(toWrite.TempFile)) using (SideChannelStream sideChannel = new SideChannelStream(from: responseStream, to: fileStream)) using (InflaterInputStream inflate = new InflaterInputStream(sideChannel)) using (HashingStream hashing = new HashingStream(inflate)) using (NoOpStream devNull = new NoOpStream()) { hashing.CopyTo(devNull); string actualSha = SHA1Util.HexStringFromBytes(hashing.Hash); if (!sha.Equals(actualSha, StringComparison.OrdinalIgnoreCase)) { string message = $"Requested object with hash {sha} but received object with hash {actualSha}."; message += $"\nFind the incorrect data at '{toWrite.TempFile}'"; this.Tracer.RelatedError(message); throw new SecurityException(message); } } } catch (SharpZipBaseException) { string message = $"Requested object with hash {sha} but received data that failed decompression."; message += $"\nFind the incorrect data at '{toWrite.TempFile}'"; this.Tracer.RelatedError(message); throw new RetryableException(message); } } else { using (Stream fileStream = this.OpenTempLooseObjectStream(toWrite.TempFile)) { StreamUtil.CopyToWithBuffer(responseStream, fileStream, bufToCopyWith); fileStream.Flush(); } } this.FinalizeTempFile(sha, toWrite, overwriteExistingObject); return toWrite.ActualFile; } catch (IOException e) { throw new RetryableException("IOException while writing loose object. See inner exception for details.", e); } catch (UnauthorizedAccessException e) { throw new RetryableException("UnauthorizedAccessException while writing loose object. See inner exception for details.", e); } catch (Win32Exception e) { throw new RetryableException("Win32Exception while writing loose object. See inner exception for details.", e); } }
开发者ID:microsoft,项目名称:VFSForGit,代码行数:65,代码来源:GitObjects.cs
在WriteLooseObject()方法中,Stream的代码示例类中的Flush的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞
Stream.Flush的代码示例5 - TryWriteTempFileAndRename()
using System.IO; public bool TryWriteTempFileAndRename(string destinationPath, string contents, out Exception handledException) { handledException = null; string tempFilePath = destinationPath + ".temp"; string parentPath = Path.GetDirectoryName(tempFilePath); this.CreateDirectory(parentPath); try { using (Stream tempFile = this.OpenFileStream(tempFilePath, FileMode.Create, FileAccess.Write, FileShare.None, callFlushFileBuffers: true)) using (StreamWriter writer = new StreamWriter(tempFile)) { writer.Write(contents); tempFile.Flush(); } this.MoveAndOverwriteFile(tempFilePath, destinationPath); return true; } catch (Win32Exception e) { handledException = e; return false; } catch (IOException e) { handledException = e; return false; } catch (UnauthorizedAccessException e) { handledException = e; return false; } }
开发者ID:microsoft,项目名称:VFSForGit,代码行数:38,代码来源:PhysicalFileSystem.cs
在TryWriteTempFileAndRename()方法中,Stream的代码示例类中的Flush的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞
Stream.Flush的代码示例6 - WriteRegistry()
using System.IO; private void WriteRegistry(Dictionary
registry) { string tempFilePath = Path.Combine(this.registryParentFolderPath, RegistryTempName); using (Stream stream = this.fileSystem.OpenFileStream( tempFilePath, FileMode.Create, FileAccess.Write, FileShare.None, callFlushFileBuffers: true)) using (StreamWriter writer = new StreamWriter(stream)) { writer.WriteLine(RegistryVersion); foreach (RepoRegistration repo in registry.Values) { writer.WriteLine(repo.ToJson()); } stream.Flush(); } this.fileSystem.MoveAndOverwriteFile(tempFilePath, Path.Combine(this.registryParentFolderPath, RegistryName)); }
开发者ID:microsoft,项目名称:VFSForGit,代码行数:25,代码来源:RepoRegistry.cs
在WriteRegistry()方法中,Stream的代码示例类中的Flush的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞
Stream.Flush的代码示例7 - SaveFileForCompression()
using System.IO; private void SaveFileForCompression(bool Compress, string[] fileNames, ICompressionFormat compressionFormat) { if (fileNames.Length == 0) return; string ext = Compress ? ".comp" : ""; if (compressionFormat.Extension.Length > 0 && Compress) ext = compressionFormat.Extension[0].Replace("*", string.Empty); List
failedFiles = new List (); if (fileNames.Length > 1) { FolderSelectDialog ofd = new FolderSelectDialog(); if (ofd.ShowDialog() == DialogResult.OK) { foreach (var file in fileNames) { string name = Path.GetFileName(file); name = name.Count(c => c == '.') > 1 && !Compress ? name.Remove(name.LastIndexOf('.')) : name; using (var data = new FileStream(file, FileMode.Open, FileAccess.Read)) { try { Stream stream; if (Compress) stream = compressionFormat.Compress(data); else { compressionFormat.Identify(data, file); stream = compressionFormat.Decompress(data); } if (stream != null) { stream.ExportToFile($"{ofd.SelectedPath}/{name}{ext}"); stream.Flush(); stream.Close(); } } catch (Exception ex) { failedFiles.Add($"{file} \n\n {ex} \n\n"); } } } if (failedFiles.Count > 0) { string action = Compress ? "compress" : "decompress"; STErrorDialog.Show($"Some files failed to {action}! See detail list of failed files.", "Switch Toolbox", string.Join("\n", failedFiles.ToArray())); } else MessageBox.Show("Files batched successfully!"); } } else { SaveFileDialog sfd = new SaveFileDialog(); string name = Path.GetFileName(fileNames[0]); sfd.FileName = name + ext; sfd.Filter = "All files(*.*)|*.*"; Cursor.Current = Cursors.Default; if (sfd.ShowDialog() == DialogResult.OK) { try { using (var data = new FileStream(fileNames[0], FileMode.Open, FileAccess.Read)) { Stream stream; if (Compress) stream = compressionFormat.Compress(data); else { compressionFormat.Identify(data, fileNames[0]); stream = compressionFormat.Decompress(data); } if (stream != null) { stream.ExportToFile(sfd.FileName); stream.Flush(); stream.Close(); MessageBox.Show($"File has been saved to {sfd.FileName}", "Save Notification"); } } } catch (Exception ex) { string action = Compress ? "compress" : "decompress"; STErrorDialog.Show($"Failed to {action}! See details for info.", "Switch Toolbox", ex.ToString()); } } } }
开发者ID:KillzXGaming,项目名称:Switch-Toolbox,代码行数:99,代码来源:CompressionMenus.cs
在SaveFileForCompression()方法中,Stream的代码示例类中的Flush的代码示例方法一共出现了2次, 见黄色背景高亮显示的地方,欢迎大家点赞
Stream.Flush的代码示例8 - Save()
using System.IO; public void Save(DDS dds, Stream stream, List
data = null) { FileWriter writer = new FileWriter(stream); var header = dds.header; writer.Write(Encoding.ASCII.GetBytes("DDS ")); writer.Write(header.size); writer.Write(header.flags); writer.Write(header.height); writer.Write(header.width); writer.Write(header.pitchOrLinearSize); writer.Write(header.depth); writer.Write(header.mipmapCount); for (int i = 0; i < 11; ++i) writer.Write(header.reserved1[i]); writer.Write(header.ddspf.size); writer.Write(header.ddspf.flags); writer.Write(header.ddspf.fourCC); writer.Write(header.ddspf.RGBBitCount); writer.Write(header.ddspf.RBitMask); writer.Write(header.ddspf.GBitMask); writer.Write(header.ddspf.BBitMask); writer.Write(header.ddspf.ABitMask); writer.Write(header.caps); writer.Write(header.caps2); writer.Write(header.caps3); writer.Write(header.caps4); writer.Write(header.reserved2); if (IsDX10) { WriteDX10Header(writer); } if (data != null) { foreach (var surface in data) { writer.Write(Utils.CombineByteArray(surface.mipmaps.ToArray())); } } else { writer.Write(bdata); } writer.Flush(); writer.Close(); writer.Dispose(); }
开发者ID:KillzXGaming,项目名称:Switch-Toolbox,代码行数:52,代码来源:DDS.cs
在Save()方法中,Stream的代码示例类中的Flush的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞
本文中的Stream.Flush方法示例由csref.cn整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。