File.SetAttributes(String, FileAttributes) メソッド


指定したパスでファイルの指定された FileAttributes を設定します。Sets the specified FileAttributes of the file on the specified path.

 static void SetAttributes(System::String ^ path, System::IO::FileAttributes fileAttributes);
public static void SetAttributes (string path, System.IO.FileAttributes fileAttributes);
static member SetAttributes : string * System.IO.FileAttributes -> unit
Public Shared Sub SetAttributes (path As String, fileAttributes As FileAttributes)



ファイルへのパス。The path to the file.


列挙値のビットごとの組み合わせ。A bitwise combination of the enumeration values.


path が空か、空白文字だけを含むか、正しくない文字を含むか、ファイル属性が正しくありません。path is empty, contains only white spaces, contains invalid characters, or the file attribute is invalid.

指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。The specified path, file name, or both exceed the system-defined maximum length.

path の形式が正しくありません。path is in an invalid format.

指定されたパスが無効です (たとえば、マップされていないドライブにあるなど)。The specified path is invalid, (for example, it is on an unmapped drive).

ファイルが見つかりません。The file cannot be found.

path が読み取り専用のファイルを指定しました。path specified a file that is read-only.

- または --or- この操作は、現在のプラットフォームではサポートされていません。This operation is not supported on the current platform.

- または --or- path がディレクトリを指定しました。path specified a directory.

- または --or- 呼び出し元に、必要なアクセス許可がありません。The caller does not have the required permission.

次の例では GetAttributesSetAttributes Archive ファイルに属性と属性を適用することによって、メソッドとメソッドを示し Hidden ます。The following example demonstrates the GetAttributes and SetAttributes methods by applying the Archive and Hidden attributes to a file.

using namespace System;
using namespace System::IO;
using namespace System::Text;
int main()
   String^ path = "c:\\temp\\MyTest.txt";
   // Create the file if it does not exist.
   if (  !File::Exists( path ) )
      File::Create( path );

   if ( (File::GetAttributes( path ) & FileAttributes::Hidden) == FileAttributes::Hidden )
      // Show the file.
      File::SetAttributes(path, File::GetAttributes( path ) & ~FileAttributes::Hidden);
      Console::WriteLine( "The {0} file is no longer hidden.", path );
      // Hide the file.
      File::SetAttributes( path, static_cast<FileAttributes>(File::GetAttributes( path ) | FileAttributes::Hidden) );
      Console::WriteLine( "The {0} file is now hidden.", path );

using System;
using System.IO;
using System.Text;

class Test
    public static void Main()
        string path = @"c:\temp\MyTest.txt";

        // Create the file if it does not exist.
        if (!File.Exists(path))

        FileAttributes attributes = File.GetAttributes(path);

        if ((attributes & FileAttributes.Hidden) == FileAttributes.Hidden)
            // Show the file.
            attributes = RemoveAttribute(attributes, FileAttributes.Hidden);
            File.SetAttributes(path, attributes);
            Console.WriteLine("The {0} file is no longer hidden.", path);
            // Hide the file.
            File.SetAttributes(path, File.GetAttributes(path) | FileAttributes.Hidden);
            Console.WriteLine("The {0} file is now hidden.", path);

    private static FileAttributes RemoveAttribute(FileAttributes attributes, FileAttributes attributesToRemove)
        return attributes & ~attributesToRemove;
Imports System.IO
Imports System.Text

Public Class Test
    Public Shared Sub Main()
        Dim path As String = "c:\temp\MyTest.txt"

        ' Create the file if it does not exist.
        If File.Exists(path) = False Then
        End If

        Dim attributes As FileAttributes
        attributes = File.GetAttributes(path)

        If (attributes And FileAttributes.Hidden) = FileAttributes.Hidden Then
            ' Show the file.
            attributes = RemoveAttribute(attributes, FileAttributes.Hidden)
            File.SetAttributes(path, attributes)
            Console.WriteLine("The {0} file is no longer hidden.", path)
            ' Hide the file.
            File.SetAttributes(path, File.GetAttributes(path) Or FileAttributes.Hidden)
            Console.WriteLine("The {0} file is now hidden.", path)
        End If
    End Sub

    Public Shared Function RemoveAttribute(ByVal attributes As FileAttributes, ByVal attributesToRemove As FileAttributes) As FileAttributes
        Return attributes And (Not attributesToRemove)
    End Function
End Class


pathパラメーターで相対パスまたは絶対パス情報を指定できます。The path parameter is permitted to specify relative or absolute path information. 相対パス情報は、現在の作業ディレクトリを基準として解釈されます。Relative path information is interpreted as relative to the current working directory. 現在の作業ディレクトリを取得するには、「」を参照してください GetCurrentDirectoryTo obtain the current working directory, see GetCurrentDirectory.

やなどの特定のファイル属性を Hidden ReadOnly 組み合わせることができます。Certain file attributes, such as Hidden and ReadOnly, can be combined. などの他の属性は Normal 、単独で使用する必要があります。Other attributes, such as Normal, must be used alone.

Fileメソッドを使用して、オブジェクトの圧縮状態を変更することはできません SetAttributesIt is not possible to change the compression status of a File object using the SetAttributes method.

共通 I/O タスクの一覧は、 共通 I/O タスク を参照してください。For a list of common I/O tasks, see Common I/O Tasks.