本文整理汇总了C#中FileShare.ToNative方法的典型用法代码示例。如果您正苦于以下问题:C# FileShare.ToNative方法的具体用法?C# FileShare.ToNative怎么用?C# FileShare.ToNative使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FileShare
的用法示例。
在下文中一共展示了FileShare.ToNative方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Open
private FileStream Open(string path, FileMode mode, FileAccess access, FileShare share)
{
// Future: Support System.IO.FileOptions which is the dwFlagsAndAttribute parameter.
var fileHandle = NativeMethods.CreateFileTransactedW(path,
access.ToNative(),
share.ToNative(),
IntPtr.Zero,
mode.ToNative(),
0, IntPtr.Zero,
_TransactionHandle,
IntPtr.Zero, IntPtr.Zero);
var error = Marshal.GetLastWin32Error();
if (fileHandle.IsInvalid)
{
var baseStr = string.Format("Transaction \"{1}\": Unable to open a file descriptor to \"{0}\".", path,
Name ?? "[no name]");
if (error == TxFCodes.ERROR_TRANSACTIONAL_CONFLICT)
throw new TransactionalConflictException(baseStr
+
" You will get this error if you are accessing the transacted file from a non-transacted API before the transaction has "
+ "committed. See HelperLink for details.",
new Uri("http://msdn.microsoft.com/en-us/library/aa365536%28VS.85%29.aspx"));
throw new TransactionException(baseStr + "Please see the inner exceptions for details.",
LastEx());
}
return new FileStream(fileHandle, access);
}
示例2: GetFileHandle
private static SafeFileHandle GetFileHandle(string normalizedPath, FileMode mode, FileAccess access, FileShare share,
FileOptions options)
{
var handle = NativeMethods.CreateFile(normalizedPath, access.ToNative(), share.ToNative(), IntPtr.Zero,
mode.ToNative(),
options.ToNative(), IntPtr.Zero);
if (handle.IsInvalid)
throw LongPathCommon.GetExceptionFromLastWin32Error();
return handle;
}