ゲーマーときどきエンジニア

基本ゲーム記事を書いて、ときどき考えを発信するエンジニアのブログです!

【C#】ファイルを削除する、Deleteメソッドを解説します

こんにちは。たいら(@tairaengineer2)です。
この記事では、C#ファイル削除するやり方について解説します。

スポンサーリンク

 

前提条件

この記事では、Visual Studio 2017 Communityを使っています。
インストールの仕方は、下の記事をご参考ください。

www.tairax.com

Deleteメソッドについて

C#でファイルに上書きをするとき、Deleteメソッドを使います。

このメソッドはusingは

using System.IO;

を使います。
使い方は

f:id:Tairax:20190412084146p:plain

  • 第1引数:目的のファイルまでのパスを指定

です。
相対パスを注意した方がよいと書いた理由は、後ほど書きます。
絶対パスと相対パスについては、こちらの記事をご参考ください。

www.tairax.com

先ほど例に出したパスの前に【@】がついていますが、これは逐語的文字列というものです。

C# のキーワードを識別子として使用できるようにする。
コード要素のプレフィックスとして @ 文字を使用すると、その要素はC# のキーワードではなく、識別子としてコンパイラに解釈されます。

@ - C# リファレンス | Microsoft Docsから引用させて頂きました

Deleteメソッドでファイルを削除

実際にDeleteメソッドを使ってファイルを削除してみます。
解説するパターンは

  1. 相対パスで指定してファイルを削除
  2. 絶対パスで指定するが、ファイルは存在しない

の2パターンを解説します。

コンソールプロジェクトを作成するやり方は下の記事をご参考ください。

www.tairax.com

プログラムを作成したあと、ビルドをするやり方はこちらの記事をご参考ください。

www.tairax.com

 

スポンサーリンク

 

パターンその1:相対パスで指定

解説に使うプログラムは、Deleteメソッドを使ってファイルを削除するというシンプルなものです。
先ほど書いた通り、第1引数で指定するパスは相対パスです。

C#サンプルコード

using System.IO;
using System;

namespace ConsoleApp1
{
    /// <summary>
    /// ファイルを削除するプログラムその1
    /// </summary>
    class Program
    {
        /// <summary>
        /// メイン
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            File.Delete(@"./Sample.txt");
            Console.WriteLine("ファイルを削除しました。");
        }
    }
}

実行結果

では、実行しますが、その前に

  • 削除するファイルがどこにあるのか
  • ファイルがあるかどうか

を確認します。
今回は削除するファイルを相対パスで指定しています。
【./Sample.txt】の意味としては、実行ファイルと同じ場所に格納する必要があります。
結論から言うとファイルは、ビルドしてexeファイルが出来る場所に置きます。

f:id:Tairax:20190413174006p:plain

さきほど相対パスで書く場合、注意した方がよいと書いたのはこれが理由です。
ビルドして実行するときは、exeファイルを使います。
ソリューションプロジェクトとexeファイルがある場所は異なります。
なので相対パスで指定したファイルは、ソリューションプロジェクトがある場所ではなく、ビルドしてexeファイルが出来る場所に置く必要があります。

【Sample.txt】があることを確認できました。
では、実行します。

f:id:Tairax:20190413174322p:plain

ファイルを削除しました。
続行するには何かキーを押してください . . .

実行できました。
ディレクトリの中を確認します。

f:id:Tairax:20190413174536p:plain

【Sample.txt】が削除されていることが確認できました。

パターンその2:絶対パスで指定

解説に使うプログラムは、Deleteメソッドを使ってファイルを削除するというシンプルなものです。
先ほど書いた通り、第1引数で指定するパスは絶対パスです。
ただし、パスで指定するファイルは存在しません

C#サンプルコード

using System.IO;
using System;

namespace ConsoleApp1
{
    /// <summary>
    /// ファイルを削除するプログラムその2
    /// </summary>
    class Program
    {
        /// <summary>
        /// メイン
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            File.Delete(@"C:\work\Sample.txt");
            Console.WriteLine("ファイルを削除しました。");
        }
    }
}

実行結果

では、実行しますが、その前に

  • 削除するファイルがどこにあるのか
  • ファイルがあるかどうか

を確認します。

f:id:Tairax:20190413175312p:plain

指定しているパスに【Sample.txt】が無いことを確認しました。
では、実行します。

f:id:Tairax:20190413174322p:plain

ファイルを削除しました。
続行するには何かキーを押してください . . .

実行できました。
ディレクトリの中を確認します。

f:id:Tairax:20190413175312p:plain

このようにDeleteメソッドは、パスの先のファイルがなくても正常終了します。

 

スポンサーリンク

 

まとめ:Deleteメソッドを使ってファイルを削除してみよう!

以上がファイルを削除をするDeleteメソッドの解説です。

f:id:Tairax:20190412084146p:plain

あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ

 

ほかにもC#解説記事を書いてます。
よければご参考ください。

【C#】ファイルに上書きする、WriteAllTextメソッドを解説します

【C#】はてな2つの演算子、null合体演算子について解説します

【C#】整数を2進数、8進数、16進数に変換するやり方を解説します

 

今までブログで書いたC#の解説記事のまとめは、こちらをご参考ください。

【C#】ブログで書いた文法記事のまとめ