-4
    private void Scan_files_Click(object sender, EventArgs e)
    {
        for (int i = 0; i < listView1.Items.Count; i++)
        {
            string filePath = Convert.ToString(listView1.Items[i]);
           // MessageBox.Show("Files found: " + filePath, "Message");
           // FileAttributes fileAttributes = File.GetAttributes(filePath);
            if (((File.GetAttributes(filePath) & FileAttributes.ReadOnly) == FileAttributes.ReadOnly) && ((File.GetAttributes(filePath) & FileAttributes.Hidden) == FileAttributes.Hidden) && ((File.GetAttributes(filePath) & FileAttributes.System) == FileAttributes.System))
            {
                MessageBox.Show("File's Attributes: " + File.GetAttributes(filePath));
            }
            else
                MessageBox.Show(" NO matching attrbutes");
        }
    }

私はこれを機能させることができません:S

4

2 に答える 2

2

このコードを使用して、ファイル属性を確認できます。

for (int i = 0; i < listView1.Items.Count; i++)
{
    string filePath = Convert.ToString(listView1.Items[i]);

    if (!File.Exists(filePath))
        return;
    //make sure you have a correct file path in filePath variable

    // check whether a file is read only
    bool isReadOnly = ((File.GetAttributes(filePath) & FileAttributes.ReadOnly) == FileAttributes.ReadOnly);

    // check whether a file is hidden
    bool isHidden = ((File.GetAttributes(filePath) & FileAttributes.Hidden) == FileAttributes.Hidden);

    // check whether a file is system file
    bool isSystem = ((File.GetAttributes(filePath) & FileAttributes.System) == FileAttributes.System);

    if (isReadOnly || isHidden || isSystem)
        MessageBox.Show("File's Attributes: " + File.GetAttributes(filePath));
    else
        MessageBox.Show("No. matching attrbutes");
}

参照:ファイル属性[C#]

ハッピーコーディング...

于 2012-10-08T17:29:37.477 に答える
0

実際に取得しているものを調査しfilePathます。ブレークポイントを使用するか、File.GetAttributesを呼び出す前に、次のことを試してください。

if (!File.Exists(filePath))
{
    MessageBox.Show(String.Format("File {0} not found.", filePath));
}
于 2012-10-08T17:27:16.130 に答える