Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / Configuration / System / Configuration / FileUtil.cs / 1 / FileUtil.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Configuration { using System; using System.IO; using Microsoft.Win32; using System.Runtime.InteropServices; static internal class FileUtil { const int HRESULT_WIN32_FILE_NOT_FOUND = unchecked((int)0x80070002); const int HRESULT_WIN32_PATH_NOT_FOUND = unchecked((int)0x80070003); // // Use to avoid the perf hit of a Demand when the Demand is not necessary for security. // // If trueOnError is set, then return true if we cannot confirm that the file does NOT exist. // internal static bool FileExists(string filename, bool trueOnError) { UnsafeNativeMethods.WIN32_FILE_ATTRIBUTE_DATA data; bool ok = UnsafeNativeMethods.GetFileAttributesEx(filename, UnsafeNativeMethods.GetFileExInfoStandard, out data); if (ok) { // The path exists. Return true if it is a file, false if a directory. return (data.fileAttributes & (int) FileAttributes.Directory) != (int) FileAttributes.Directory; } else { if (!trueOnError) { return false; } else { // Return true if we cannot confirm that the file does NOT exist. int hr = Marshal.GetHRForLastWin32Error(); if (hr == HRESULT_WIN32_FILE_NOT_FOUND || hr == HRESULT_WIN32_PATH_NOT_FOUND) { return false; } else { return true; } } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Configuration { using System; using System.IO; using Microsoft.Win32; using System.Runtime.InteropServices; static internal class FileUtil { const int HRESULT_WIN32_FILE_NOT_FOUND = unchecked((int)0x80070002); const int HRESULT_WIN32_PATH_NOT_FOUND = unchecked((int)0x80070003); // // Use to avoid the perf hit of a Demand when the Demand is not necessary for security. // // If trueOnError is set, then return true if we cannot confirm that the file does NOT exist. // internal static bool FileExists(string filename, bool trueOnError) { UnsafeNativeMethods.WIN32_FILE_ATTRIBUTE_DATA data; bool ok = UnsafeNativeMethods.GetFileAttributesEx(filename, UnsafeNativeMethods.GetFileExInfoStandard, out data); if (ok) { // The path exists. Return true if it is a file, false if a directory. return (data.fileAttributes & (int) FileAttributes.Directory) != (int) FileAttributes.Directory; } else { if (!trueOnError) { return false; } else { // Return true if we cannot confirm that the file does NOT exist. int hr = Marshal.GetHRForLastWin32Error(); if (hr == HRESULT_WIN32_FILE_NOT_FOUND || hr == HRESULT_WIN32_PATH_NOT_FOUND) { return false; } else { return true; } } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CurrencyManager.cs
- Util.cs
- SecurityTokenAttachmentMode.cs
- ContextQuery.cs
- MemberInfoSerializationHolder.cs
- X509Certificate2Collection.cs
- XmlBufferReader.cs
- XmlnsCache.cs
- Metafile.cs
- BuildProviderAppliesToAttribute.cs
- SqlDataSource.cs
- wgx_exports.cs
- ExeContext.cs
- WebUtil.cs
- ExecutionTracker.cs
- InvokePattern.cs
- _AuthenticationState.cs
- MessageSecurityVersionConverter.cs
- PermissionSetEnumerator.cs
- ReaderWriterLock.cs
- SqlUserDefinedAggregateAttribute.cs
- CqlErrorHelper.cs
- DoubleAnimationBase.cs
- WindowsAuthenticationModule.cs
- XmlNavigatorStack.cs
- ClientType.cs
- WebPageTraceListener.cs
- SqlXml.cs
- XPathParser.cs
- EventLogPermission.cs
- DataGridCell.cs
- SendKeys.cs
- XmlNodeReader.cs
- SchemaElementLookUpTable.cs
- DbParameterCollectionHelper.cs
- RtfControlWordInfo.cs
- MobileListItemCollection.cs
- XamlFilter.cs
- BindStream.cs
- DataRow.cs
- UnicodeEncoding.cs
- JulianCalendar.cs
- DataBindingExpressionBuilder.cs
- SqlMethods.cs
- PrinterResolution.cs
- WinFormsComponentEditor.cs
- Set.cs
- XmlSerializerAssemblyAttribute.cs
- UnknownBitmapDecoder.cs
- SelfIssuedSamlTokenFactory.cs
- WsdlWriter.cs
- ContentTextAutomationPeer.cs
- BulletDecorator.cs
- Pool.cs
- SHA256.cs
- Hex.cs
- BuildManagerHost.cs
- DeferredReference.cs
- ProviderConnectionPoint.cs
- DebugController.cs
- BamlReader.cs
- WebConfigurationHostFileChange.cs
- SpeechSynthesizer.cs
- elementinformation.cs
- OutputScope.cs
- FeatureAttribute.cs
- SecurityTokenRequirement.cs
- RuntimeConfig.cs
- UpdateTracker.cs
- PointCollectionValueSerializer.cs
- ReferentialConstraint.cs
- Size3D.cs
- StrokeCollection2.cs
- ZipFileInfoCollection.cs
- VoiceSynthesis.cs
- MarshalDirectiveException.cs
- ColorConverter.cs
- SectionVisual.cs
- ToggleProviderWrapper.cs
- ChainedAsyncResult.cs
- TextEditorCharacters.cs
- DrawingDrawingContext.cs
- QilUnary.cs
- SearchForVirtualItemEventArgs.cs
- CommandSet.cs
- SourceFilter.cs
- HtmlElement.cs
- CodePrimitiveExpression.cs
- KeyNotFoundException.cs
- EndpointDispatcher.cs
- ObjectSecurity.cs
- SingleSelectRootGridEntry.cs
- BrowserCapabilitiesFactoryBase.cs
- EmptyControlCollection.cs
- OletxTransactionHeader.cs
- WebScriptEndpoint.cs
- XmlSchemaAttributeGroup.cs
- Figure.cs
- Calendar.cs
- EnumerableCollectionView.cs