3

So I'm using the CreateFile function for a C# project that I'm currently working on. I've seen some examples that pass 0 as the argument for dwFlagsAndAttributes.

While I'm reading through the documentation it doesn't specify what setting dwFlagsAndAttributes = 0 entails. Is this just a way of setting no flags or attributes?

The C# syntax for this method is:

[DllImport("kernel32.dll", SetLastError = true)]
static extern SafeFileHandle CreateFile(string lpFileName, 
       FileAccess dwDesiredAccess, uint dwShareMode, IntPtr lpSecurityAttributes,
       FileMode dwCreationDisposition, uint dwFlagsAndAttributes, 
       IntPtr hTemplateFile);

Any help is greatly appreciated.

4

3 回答 3

3

尽管CreateFile此函数的名称用于创建和打开文件。在用于打开文件的情况下,该dwFlagsAndAttributes参数通常被忽略。您看到的案例很可能与文件打开与文件创建有关。

如果您使用此方法的目的是创建文件,我会使用FILE_ATTRIBUTE_NORMAL( 0x80)。

于 2013-08-01T15:05:47.917 回答
3

这只是一种不设置标志或属性的方法吗?

确切地。传递0作为一组位标志的参数(就像这个参数一样)意味着没有设置任何标志。

于 2013-08-01T15:07:16.043 回答
3

是的,它只是意味着该文件没有什么特别的(即,它不匹配任何文件属性常量属性。

于 2013-08-01T15:04:18.103 回答