File.Delete(String) メソッド

定義

指定されたファイルを削除します。Deletes the specified file.

public:
 static void Delete(System::String ^ path);
public static void Delete (string path);
static member Delete : string -> unit
Public Shared Sub Delete (path As String)

パラメーター

path
String

削除するファイルの名前。The name of the file to be deleted. ワイルドカード文字はサポートされていません。Wildcard characters are not supported.

例外

path は長さ 0 の文字列で、空白のみで構成されるか、または InvalidPathChars で定義される 1 つ以上の正しくない文字を含んでいます。path is a zero-length string, contains only white space, or contains one or more invalid characters as defined by InvalidPathChars.

pathnullです。path is null.

指定されたパスが正しくありません (たとえば、マップされていないドライブにあるなど)。The specified path is invalid (for example, it is on an unmapped drive).

指定されたファイルは、使用されています。The specified file is in use.

- または --or- ファイルに開いているハンドルがあり、オペレーティング システムが Windows XP かそれ以前のバージョンです。There is an open handle on the file, and the operating system is Windows XP or earlier. このハンドルが開いている原因は、ディレクトリおよびファイルを列挙したことにある可能性があります。This open handle can result from enumerating directories and files. 詳細については、 ディレクトリとファイルを列挙するFor more information, see How to: Enumerate Directories and Files.

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

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

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

- または --or- ファイルは使用されている実行可能ファイルです。The file is an executable file that is in use.

- または --or- path はディレクトリです。path is a directory.

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

次の例では、ファイルのグループを C:\archives\2008 backup フォルダーにコピーし、ソースフォルダーから削除します。The following example copies groups of files to the C:\archives\2008 backup folder and then deletes them from the source folder.

string sourceDir = @"c:\current";
string backupDir = @"c:\archives\2008";

try
{
    string[] picList = Directory.GetFiles(sourceDir, "*.jpg");
    string[] txtList = Directory.GetFiles(sourceDir, "*.txt");

    // Copy picture files.
    foreach (string f in picList)
    {
        // Remove path from the file name.
        string fName = f.Substring(sourceDir.Length + 1);

        // Use the Path.Combine method to safely append the file name to the path.
        // Will overwrite if the destination file already exists.
        File.Copy(Path.Combine(sourceDir, fName), Path.Combine(backupDir, fName), true);
    }

    // Copy text files.
    foreach (string f in txtList)
    {

        // Remove path from the file name.
        string fName = f.Substring(sourceDir.Length + 1);

        try
        {
            // Will not overwrite if the destination file already exists.
            File.Copy(Path.Combine(sourceDir, fName), Path.Combine(backupDir, fName));
        }

        // Catch exception if the file was already copied.
        catch (IOException copyError)
        {
            Console.WriteLine(copyError.Message);
        }
    }

    // Delete source files that were copied.
    foreach (string f in txtList)
    {
        File.Delete(f);
    }
    foreach (string f in picList)
    {
        File.Delete(f);
    }
}

catch (DirectoryNotFoundException dirNotFound)
{
    Console.WriteLine(dirNotFound.Message);
}

Dim sourceDir As String = "c:\current"
Dim backupDir As String = "c:\archives\2008"

Try
    Dim picList As String() = Directory.GetFiles(sourceDir, "*.jpg")
    Dim txtList As String() = Directory.GetFiles(sourceDir, "*.txt")

    ' Copy picture files.
    For Each f As String In picList
        'Remove path from the file name.
        Dim fName As String = f.Substring(sourceDir.Length + 1)

        ' Use the Path.Combine method to safely append the file name to the path.
        ' Will overwrite if the destination file already exists.
        File.Copy(Path.Combine(sourceDir, fName), Path.Combine(backupDir, fName), True)
    Next

    ' Copy text files.
    For Each f As String In txtList

        'Remove path from the file name.
        Dim fName As String = f.Substring(sourceDir.Length + 1)

        Try
            ' Will not overwrite if the destination file already exists.
            File.Copy(Path.Combine(sourceDir, fName), Path.Combine(backupDir, fName))

            ' Catch exception if the file was already copied.
        Catch copyError As IOException
            Console.WriteLine(copyError.Message)
        End Try
    Next

    For Each f As String In txtList
        File.Delete(f)
    Next

    For Each f As String In picList
        File.Delete(f)
    Next

Catch dirNotFound As DirectoryNotFoundException
    Console.WriteLine(dirNotFound.Message)
End Try

注釈

path パラメーターの相対パスまたは絶対パス情報を含むファイル名を指定します。Specify a file name with any relative or absolute path information for the path parameter. ワイルドカード文字を含めることはできません。Wildcard characters cannot be included. 相対パス情報は、現在の作業ディレクトリを基準として解釈されます。Relative path information is interpreted as relative to the current working directory. 現在の作業ディレクトリを取得するには、「GetCurrentDirectory」を参照してください。To obtain the current working directory, see GetCurrentDirectory.

削除するファイルが存在しない場合、例外はスローされません。If the file to be deleted does not exist, no exception is thrown.

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

セキュリティ

FileIOPermission
指定されたファイルを削除します。for deleting the specified file. 関連付けられた列挙型: WriteAssociated enumeration: Write

適用対象

こちらもご覧ください