Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / clr / src / BCL / System / IO / FileNotFoundException.cs / 1 / FileNotFoundException.cs
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
/*============================================================
**
** Class: FileNotFoundException
**
**
** Purpose: Exception for accessing a file that doesn't exist.
**
**
===========================================================*/
using System;
using System.Runtime.Serialization;
using System.Security.Permissions;
using SecurityException = System.Security.SecurityException;
using System.Globalization;
namespace System.IO {
// Thrown when trying to access a file that doesn't exist on disk.
[Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class FileNotFoundException : IOException {
private String _fileName; // The name of the file that isn't found.
private String _fusionLog; // fusion log (when applicable)
public FileNotFoundException()
: base(Environment.GetResourceString("IO.FileNotFound")) {
SetErrorCode(__HResults.COR_E_FILENOTFOUND);
}
public FileNotFoundException(String message)
: base(message) {
SetErrorCode(__HResults.COR_E_FILENOTFOUND);
}
public FileNotFoundException(String message, Exception innerException)
: base(message, innerException) {
SetErrorCode(__HResults.COR_E_FILENOTFOUND);
}
public FileNotFoundException(String message, String fileName) : base(message)
{
SetErrorCode(__HResults.COR_E_FILENOTFOUND);
_fileName = fileName;
}
public FileNotFoundException(String message, String fileName, Exception innerException)
: base(message, innerException) {
SetErrorCode(__HResults.COR_E_FILENOTFOUND);
_fileName = fileName;
}
public override String Message
{
get {
SetMessageField();
return _message;
}
}
private void SetMessageField()
{
if (_message == null) {
if ((_fileName == null) &&
(HResult == System.__HResults.COR_E_EXCEPTION))
_message = Environment.GetResourceString("IO.FileNotFound");
else if( _fileName != null)
_message = FileLoadException.FormatFileLoadExceptionMessage(_fileName, HResult);
}
}
public String FileName {
get { return _fileName; }
}
public override String ToString()
{
String s = GetType().FullName + ": " + Message;
if (_fileName != null && _fileName.Length != 0)
s += Environment.NewLine + String.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("IO.FileName_Name"), _fileName);
if (InnerException != null)
s = s + " ---> " + InnerException.ToString();
if (StackTrace != null)
s += Environment.NewLine + StackTrace;
try
{
if(FusionLog!=null)
{
if (s==null)
s=" ";
s+=Environment.NewLine;
s+=Environment.NewLine;
s+=FusionLog;
}
}
catch(SecurityException)
{
}
return s;
}
protected FileNotFoundException(SerializationInfo info, StreamingContext context) : base (info, context) {
// Base class constructor will check info != null.
_fileName = info.GetString("FileNotFound_FileName");
try
{
_fusionLog = info.GetString("FileNotFound_FusionLog");
}
catch
{
_fusionLog = null;
}
}
private FileNotFoundException(String fileName, String fusionLog,int hResult)
: base(null)
{
SetErrorCode(hResult);
_fileName = fileName;
_fusionLog=fusionLog;
SetMessageField();
}
public String FusionLog {
[SecurityPermissionAttribute( SecurityAction.Demand, Flags = SecurityPermissionFlag.ControlEvidence | SecurityPermissionFlag.ControlPolicy)]
get { return _fusionLog; }
}
[SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.SerializationFormatter)]
public override void GetObjectData(SerializationInfo info, StreamingContext context) {
// Serialize data for our base classes. base will verify info != null.
base.GetObjectData(info, context);
// Serialize data for this class
info.AddValue("FileNotFound_FileName", _fileName, typeof(String));
try
{
info.AddValue("FileNotFound_FusionLog", FusionLog, typeof(String));
}
catch (SecurityException)
{
}
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- LogPolicy.cs
- MD5CryptoServiceProvider.cs
- BypassElement.cs
- FocusManager.cs
- HtmlLink.cs
- SelectionItemPattern.cs
- MapPathBasedVirtualPathProvider.cs
- FileFormatException.cs
- WindowPattern.cs
- EventWaitHandle.cs
- SystemIPv6InterfaceProperties.cs
- AssociationSetEnd.cs
- SortDescription.cs
- EnumerableCollectionView.cs
- BrushMappingModeValidation.cs
- PixelFormat.cs
- AssemblyAttributesGoHere.cs
- COMException.cs
- TransformGroup.cs
- HitTestResult.cs
- XMLDiffLoader.cs
- TypeDescriptorContext.cs
- ShapeTypeface.cs
- BasicExpandProvider.cs
- CodeRemoveEventStatement.cs
- XmlEntity.cs
- StickyNoteContentControl.cs
- Exception.cs
- CodeRegionDirective.cs
- EventlogProvider.cs
- WebEncodingValidator.cs
- DataSourceSelectArguments.cs
- PickBranchDesigner.xaml.cs
- TransactedReceiveData.cs
- SafeRightsManagementPubHandle.cs
- InvokeHandlers.cs
- TextElement.cs
- TextBoxAutoCompleteSourceConverter.cs
- TriggerBase.cs
- MappingException.cs
- HttpConfigurationSystem.cs
- SchemaNamespaceManager.cs
- SchemaHelper.cs
- FormView.cs
- VisualStyleTypesAndProperties.cs
- ControlCommandSet.cs
- PackWebRequestFactory.cs
- BitmapEncoder.cs
- ValueTable.cs
- x509store.cs
- QueryCorrelationInitializer.cs
- CaseStatementProjectedSlot.cs
- ConfigurationStrings.cs
- SkipQueryOptionExpression.cs
- DataGridViewRowPostPaintEventArgs.cs
- _ContextAwareResult.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- PathSegment.cs
- DesignerVerb.cs
- ContentElementAutomationPeer.cs
- MsmqIntegrationElement.cs
- OracleLob.cs
- TreeNodeEventArgs.cs
- ToolStripDropDownMenu.cs
- ExitEventArgs.cs
- XPathChildIterator.cs
- KeyConstraint.cs
- Point.cs
- AdapterUtil.cs
- WebPartConnectionsCloseVerb.cs
- LayoutEngine.cs
- TargetConverter.cs
- WindowsComboBox.cs
- SafeEventHandle.cs
- RawKeyboardInputReport.cs
- XmlQuerySequence.cs
- glyphs.cs
- ObjectParameter.cs
- CatalogZone.cs
- QilReference.cs
- GradientStopCollection.cs
- RSAProtectedConfigurationProvider.cs
- ResourceKey.cs
- UpdatePanel.cs
- RuntimeCompatibilityAttribute.cs
- RegularExpressionValidator.cs
- EnvironmentPermission.cs
- ADMembershipProvider.cs
- Drawing.cs
- ApplicationContext.cs
- TemplatePagerField.cs
- DataGridAddNewRow.cs
- AffineTransform3D.cs
- SurrogateEncoder.cs
- VirtualizingPanel.cs
- Lease.cs
- DataAccessor.cs
- BamlTreeUpdater.cs
- _UriSyntax.cs
- TraceRecords.cs