C# IOException.ToString的代码示例
通过代码示例来学习C# IOException.ToString方法
通过代码示例来学习编程是非常高效的。
1. 代码示例提供了一个具体而直观的学习环境,使初学者能够立即看到编程概念和语法的实际应用。
2. 通过分析和模仿现有的代码实例,初学者可以更好地理解编程逻辑和算法的工作原理。
3. 代码实例往往涵盖了多种编程技巧和最佳实践,通过学习和模仿这些实例,学习者可以逐步掌握如何编写高效、可读性强和可维护的代码。这对于初学者来说,是一种快速提升编程水平的有效途径。
IOException.ToString是C#的System.IO命名空间下中的一个方法, 小编为大家找了一些网络大拿们常见的代码示例,源码中的IOException.ToString() 已经帮大家高亮显示了,大家可以重点学习IOException.ToString() 方法的写法,从而快速掌握该方法的应用。
IOException.ToString的代码示例1 - GetCloneRoot()
using System.IO; private string GetCloneRoot(out string fullEnlistmentRootPathParameter) { fullEnlistmentRootPathParameter = null; try { string repoName = this.RepositoryURL.Substring(this.RepositoryURL.LastIndexOf('/') + 1); fullEnlistmentRootPathParameter = string.IsNullOrWhiteSpace(this.EnlistmentRootPathParameter) ? Path.Combine(Environment.CurrentDirectory, repoName) : this.EnlistmentRootPathParameter; fullEnlistmentRootPathParameter = Path.GetFullPath(fullEnlistmentRootPathParameter); string errorMessage; string enlistmentRootPath; if (!GVFSPlatform.Instance.FileSystem.TryGetNormalizedPath(fullEnlistmentRootPathParameter, out enlistmentRootPath, out errorMessage)) { this.ReportErrorAndExit("Unable to determine normalized path of clone root: " + errorMessage); return null; } return enlistmentRootPath; } catch (IOException e) { this.ReportErrorAndExit("Unable to determine clone root: " + e.ToString()); return null; } }
开发者ID:microsoft,项目名称:VFSForGit,代码行数:32,代码来源:CloneVerb.cs
在GetCloneRoot()方法中,IOException的代码示例类中的ToString的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞
IOException.ToString的代码示例2 - TryUpgrade()
using System.IO; ///
/// Adds the folder placeholders to the placeholders list /// public override bool TryUpgrade(ITracer tracer, string enlistmentRoot) { string dotGVFSRoot = Path.Combine(enlistmentRoot, GVFSPlatform.Instance.Constants.DotGVFSRoot); try { string error; LegacyPlaceholderListDatabase placeholders; if (!LegacyPlaceholderListDatabase.TryCreate( tracer, Path.Combine(dotGVFSRoot, GVFSConstants.DotGVFS.Databases.PlaceholderList), new PhysicalFileSystem(), out placeholders, out error)) { tracer.RelatedError("Failed to open placeholder database: " + error); return false; } using (placeholders) { string workingDirectoryRoot = Path.Combine(enlistmentRoot, GVFSConstants.WorkingDirectoryRootName); // Run through the folder placeholders adding to the placeholder list IEnumerablefolderPlaceholderPaths = GetFolderPlaceholdersFromDisk(tracer, new PhysicalFileSystem(), workingDirectoryRoot) .Select(x => x.Substring(workingDirectoryRoot.Length + 1)) .Select(x => new LegacyPlaceholderListDatabase.PlaceholderData(x, GVFSConstants.AllZeroSha)); List placeholderEntries = placeholders.GetAllEntries(); placeholderEntries.AddRange(folderPlaceholderPaths); placeholders.WriteAllEntriesAndFlush(placeholderEntries); } } catch (IOException ex) { tracer.RelatedError("Could not write to placeholder database: " + ex.ToString()); return false; } catch (Exception ex) { tracer.RelatedError("Error updating placeholder database with folders: " + ex.ToString()); return false; } if (!this.TryIncrementMajorVersion(tracer, enlistmentRoot)) { return false; } return true; }
开发者ID:microsoft,项目名称:VFSForGit,代码行数:57,代码来源:DiskLayout12to13Upgrade_FolderPlaceholder.cs
在TryUpgrade()方法中,IOException的代码示例类中的ToString的代码示例方法一共出现了2次, 见黄色背景高亮显示的地方,欢迎大家点赞
IOException.ToString的代码示例3 - TryUpgrade()
using System.IO; public override bool TryUpgrade(ITracer tracer, string enlistmentRoot) { string dotGVFSRoot = Path.Combine(enlistmentRoot, GVFSPlatform.Instance.Constants.DotGVFSRoot); try { string error; LegacyPlaceholderListDatabase placeholders; if (!LegacyPlaceholderListDatabase.TryCreate( tracer, Path.Combine(dotGVFSRoot, GVFSConstants.DotGVFS.Databases.PlaceholderList), new PhysicalFileSystem(), out placeholders, out error)) { tracer.RelatedError("Failed to open placeholder database: " + error); return false; } using (placeholders) { List
oldPlaceholderEntries = placeholders.GetAllEntries(); List newPlaceholderEntries = new List (); foreach (IPlaceholderData entry in oldPlaceholderEntries) { if (entry.Sha == GVFSConstants.AllZeroSha) { newPlaceholderEntries.Add(new LegacyPlaceholderListDatabase.PlaceholderData(entry.Path, LegacyPlaceholderListDatabase.PartialFolderValue)); } else { newPlaceholderEntries.Add(entry); } } placeholders.WriteAllEntriesAndFlush(newPlaceholderEntries); } } catch (IOException ex) { tracer.RelatedError("Could not write to placeholder database: " + ex.ToString()); return false; } catch (Exception ex) { tracer.RelatedError("Error updating placeholder database folder entries: " + ex.ToString()); return false; } if (!this.TryIncrementMajorVersion(tracer, enlistmentRoot)) { return false; } return true; }
开发者ID:microsoft,项目名称:VFSForGit,代码行数:58,代码来源:DiskLayout16to17Upgrade_FolderPlaceholderValues.cs
在TryUpgrade()方法中,IOException的代码示例类中的ToString的代码示例方法一共出现了2次, 见黄色背景高亮显示的地方,欢迎大家点赞
IOException.ToString的代码示例4 - TryLoadFromDisk()
using System.IO; /// An optional callback to be run as soon as the fileLock is taken protected bool TryLoadFromDisk
( TryParseAdd tryParseAdd, TryParseRemove tryParseRemove, Action add, out string error, Action synchronizedAction = null) { lock (this.fileLock) { try { if (synchronizedAction != null) { synchronizedAction(); } this.fileSystem.CreateDirectory(this.dataDirectoryPath); this.OpenOrCreateDataFile(retryUntilSuccess: false); if (this.collectionAppendsDirectlyToFile) { this.RemoveLastEntryIfInvalid(); } long lineCount = 0; this.dataFileHandle.Seek(0, SeekOrigin.Begin); StreamReader reader = new StreamReader(this.dataFileHandle); Dictionary parsedEntries = new Dictionary (); while (!reader.EndOfStream) { lineCount++; // StreamReader strips the trailing /r/n string line = reader.ReadLine(); if (line.StartsWith(RemoveEntryPrefix)) { TKey key; if (!tryParseRemove(line.Substring(RemoveEntryPrefix.Length), out key, out error)) { error = string.Format("{0} is corrupt on line {1}: {2}", this.GetType().Name, lineCount, error); return false; } parsedEntries.Remove(key); } else if (line.StartsWith(AddEntryPrefix)) { TKey key; TValue value; if (!tryParseAdd(line.Substring(AddEntryPrefix.Length), out key, out value, out error)) { error = string.Format("{0} is corrupt on line {1}: {2}", this.GetType().Name, lineCount, error); return false; } parsedEntries[key] = value; } else { error = string.Format("{0} is corrupt on line {1}: Invalid Prefix '{2}'", this.GetType().Name, lineCount, line[0]); return false; } } foreach (KeyValuePair kvp in parsedEntries) { add(kvp.Key, kvp.Value); } if (!this.collectionAppendsDirectlyToFile) { this.CloseDataFile(); } } catch (IOException ex) { error = ex.ToString(); this.CloseDataFile(); return false; } catch (Exception e) { this.CloseDataFile(); throw new FileBasedCollectionException(e); } error = null; return true; } }
开发者ID:microsoft,项目名称:VFSForGit,代码行数:95,代码来源:FileBasedCollection.cs
在TryLoadFromDisk()方法中,IOException的代码示例类中的ToString的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞
IOException.ToString的代码示例5 - TryFixIssues()
using System.IO; ///
/// Fixes the HEAD using the reflog to find the last SHA. /// We detach HEAD as a side-effect of repair. /// public override FixResult TryFixIssues(Listmessages) { string error; RefLogEntry refLog; if (!TryReadLastRefLogEntry(this.Enlistment, GVFSConstants.DotGit.HeadName, out refLog, out error)) { this.Tracer.RelatedError(error); messages.Add(error); return FixResult.Failure; } try { string refPath = Path.Combine(this.Enlistment.WorkingDirectoryBackingRoot, GVFSConstants.DotGit.Head); File.WriteAllText(refPath, refLog.TargetSha); } catch (IOException ex) { EventMetadata metadata = new EventMetadata(); this.Tracer.RelatedError(metadata, "Failed to write HEAD: " + ex.ToString()); return FixResult.Failure; } this.Tracer.RelatedEvent( EventLevel.Informational, "MovedHead", new EventMetadata { { "DestinationCommit", refLog.TargetSha } }); messages.Add("As a result of the repair, 'git status' will now complain that HEAD is detached"); messages.Add("You can fix this by creating a branch using 'git checkout -b '"); return FixResult.Success; }
开发者ID:microsoft,项目名称:VFSForGit,代码行数:42,代码来源:GitHeadRepairJob.cs
在TryFixIssues()方法中,IOException的代码示例类中的ToString的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞
IOException.ToString的代码示例6 - GetLooseBlobStateAtPath()
using System.IO; private LooseBlobState GetLooseBlobStateAtPath(string blobPath, Action
writeAction, out long size) { bool corruptLooseObject = false; try { if (this.fileSystem.FileExists(blobPath)) { using (Stream file = this.fileSystem.OpenFileStream(blobPath, FileMode.Open, FileAccess.Read, FileShare.Read, callFlushFileBuffers: false)) { // The DeflateStream header starts 2 bytes into the gzip header, but they are otherwise compatible file.Position = 2; using (DeflateStream deflate = new DeflateStream(file, CompressionMode.Decompress)) { if (!ReadLooseObjectHeader(deflate, out size)) { corruptLooseObject = true; return LooseBlobState.Corrupt; } writeAction?.Invoke(deflate, size); return LooseBlobState.Exists; } } } size = -1; return LooseBlobState.Missing; } catch (InvalidDataException ex) { corruptLooseObject = true; EventMetadata metadata = new EventMetadata(); metadata.Add("blobPath", blobPath); metadata.Add("Exception", ex.ToString()); this.tracer.RelatedWarning(metadata, nameof(this.GetLooseBlobStateAtPath) + ": Failed to stream blob (InvalidDataException)", Keywords.Telemetry); size = -1; return LooseBlobState.Corrupt; } catch (IOException ex) { EventMetadata metadata = new EventMetadata(); metadata.Add("blobPath", blobPath); metadata.Add("Exception", ex.ToString()); this.tracer.RelatedWarning(metadata, nameof(this.GetLooseBlobStateAtPath) + ": Failed to stream blob from disk", Keywords.Telemetry); size = -1; return LooseBlobState.Unknown; } finally { if (corruptLooseObject) { string corruptBlobsFolderPath = Path.Combine(this.enlistment.EnlistmentRoot, GVFSPlatform.Instance.Constants.DotGVFSRoot, GVFSConstants.DotGVFS.CorruptObjectsName); string corruptBlobPath = Path.Combine(corruptBlobsFolderPath, Path.GetRandomFileName()); EventMetadata metadata = new EventMetadata(); metadata.Add("blobPath", blobPath); metadata.Add("corruptBlobPath", corruptBlobPath); metadata.Add(TracingConstants.MessageKey.InfoMessage, nameof(this.GetLooseBlobStateAtPath) + ": Renaming corrupt loose object"); this.tracer.RelatedEvent(EventLevel.Informational, nameof(this.GetLooseBlobStateAtPath) + "_RenameCorruptObject", metadata); try { this.fileSystem.CreateDirectory(corruptBlobsFolderPath); this.fileSystem.MoveFile(blobPath, corruptBlobPath); } catch (Exception e) { metadata = new EventMetadata(); metadata.Add("blobPath", blobPath); metadata.Add("blobBackupPath", corruptBlobPath); metadata.Add("Exception", e.ToString()); metadata.Add(TracingConstants.MessageKey.WarningMessage, nameof(this.GetLooseBlobStateAtPath) + ": Failed to rename corrupt loose object"); this.tracer.RelatedEvent(EventLevel.Warning, nameof(this.GetLooseBlobStateAtPath) + "_RenameCorruptObjectFailed", metadata, Keywords.Telemetry); } } } }
开发者ID:microsoft,项目名称:VFSForGit,代码行数:82,代码来源:GitRepo.cs
在GetLooseBlobStateAtPath()方法中,IOException的代码示例类中的ToString的代码示例方法一共出现了3次, 见黄色背景高亮显示的地方,欢迎大家点赞
IOException.ToString的代码示例7 - TryDeleteStatusCacheFile()
using System.IO; private bool TryDeleteStatusCacheFile() { Debug.Assert(Monitor.IsEntered(this.cacheFileLock), "Attempting to delete the git status cache file without the cacheFileLock"); try { if (this.context.FileSystem.FileExists(this.serializedGitStatusFilePath)) { this.context.FileSystem.DeleteFile(this.serializedGitStatusFilePath); } } catch (IOException ex) when (ex is FileNotFoundException || ex is DirectoryNotFoundException) { // Unexpected, but maybe something deleted the file out from underneath us... // As the file is deleted, lets continue with the status generation.. } catch (Exception ex) when (ex is IOException || ex is UnauthorizedAccessException) { EventMetadata metadata = new EventMetadata(); metadata.Add("Area", EtwArea); metadata.Add("Exception", ex.ToString()); this.context.Tracer.RelatedWarning( metadata, string.Format("GitStatusCache encountered exception attempting to delete cache file at {0}.", this.serializedGitStatusFilePath), Keywords.Telemetry); return false; } return true; }
开发者ID:microsoft,项目名称:VFSForGit,代码行数:34,代码来源:GitStatusCache.cs
在TryDeleteStatusCacheFile()方法中,IOException的代码示例类中的ToString的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞
IOException.ToString的代码示例8 - OnNewConnection()
using System.IO; private void OnNewConnection(IAsyncResult ar, bool createNewThreadIfSynchronous) { if (createNewThreadIfSynchronous && ar.CompletedSynchronously) { // if this callback got called synchronously, we must not do any blocking IO on this thread // or we will block the original caller. Moving to a new thread so that it will be safe // to call a blocking Read on the NamedPipeServerStream new Thread(() => this.OnNewConnection(ar, createNewThreadIfSynchronous: false)).Start(); return; } this.listeningPipe = null; bool connectionBroken = false; NamedPipeServerStream pipe = (NamedPipeServerStream)ar.AsyncState; try { try { pipe.EndWaitForConnection(ar); } catch (IOException e) { connectionBroken = true; EventMetadata metadata = new EventMetadata(); metadata.Add("Area", "NamedPipeServer"); metadata.Add("Exception", e.ToString()); metadata.Add(TracingConstants.MessageKey.WarningMessage, "OnNewConnection: Connection broken"); this.tracer.RelatedEvent(EventLevel.Warning, "OnNewConnectionn_EndWaitForConnection_IOException", metadata); } catch (Exception e) { this.LogErrorAndExit("OnNewConnection caught unhandled exception, exiting process", e); } if (!this.isStopping) { this.OpenListeningPipe(); if (!connectionBroken) { try { this.handleConnection(new Connection(pipe, this.tracer, () => this.isStopping)); } catch (Exception e) { this.LogErrorAndExit("Unhandled exception in connection handler", e); } } } } finally { pipe.Dispose(); } }
开发者ID:microsoft,项目名称:VFSForGit,代码行数:62,代码来源:NamedPipeServer.cs
在OnNewConnection()方法中,IOException的代码示例类中的ToString的代码示例方法一共出现了1次, 见黄色背景高亮显示的地方,欢迎大家点赞
本文中的IOException.ToString方法示例由csref.cn整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。