FileInfo.IsReadOnly versus FileAttributes.ReadOnly


这两种

检查文件是否为只读的方法有什么区别吗?

Dim fi As New FileInfo("myfile.txt")
' getting it from FileInfo
Dim ro As Boolean = fi.IsReadOnly
' getting it from the attributes
Dim ro As Boolean = fi.Attributes.HasFlag(FileAttributes.ReadOnly)

如果不是,为什么有两种不同的可能性?

好吧,根据 .NET 源代码,IsReadOnly 属性只检查文件的属性。

下面是特定属性:

public bool IsReadOnly {
  get {
     return (Attributes & FileAttributes.ReadOnly) != 0;
  }
  set {
     if (value)
       Attributes |= FileAttributes.ReadOnly;
     else
       Attributes &= ~FileAttributes.ReadOnly;
     }
}

这将转换为以下 VB.Net 代码

Public Property IsReadOnly() As Boolean
    Get
        Return (Attributes And FileAttributes.[ReadOnly]) <> 0
    End Get
    Set
        If value Then
            Attributes = Attributes Or FileAttributes.[ReadOnly]
        Else
            Attributes = Attributes And Not FileAttributes.[ReadOnly]
        End If
    End Set
End Property

至于为什么有多种方法,这随处可见。例如,您可以使用StringBuilder.append("abc" & VbCrLf)StringBuilder.appendLine("abc")

相关内容

  • 没有找到相关文章

最新更新