1. ホーム
  2. c#

[解決済み] C#でファイルを移動する

2022-02-24 18:54:22

質問

いくつかの画像を移動しています(ファイル名は (1).PNG , (2).PNG など)を、あるディレクトリから別のディレクトリに移動します。以下のコードを使用しています。

for (int i = 1; i < n; i++)
{
    try
    {
        from = "E:\\vid\\(" + i + ").PNG";
        to = "E:\\ConvertedFiles\\" + i + ".png";
        File.Move(from, to); // Try to move
        Console.WriteLine("Moved"); // Success
    }
    catch (IOException ex)
    {
        Console.WriteLine(ex); // Write error
    }
}

しかし、以下のようなエラーが発生します。

タイプの最初のチャンス例外 System.IO.FileNotFoundException mscorlib.dllで発生しました。

System.IO.FileNotFoundException: Could not find file 'E:\vid\(1).PNG'.

また、ファイル名を変更する予定なので、変換後のファイル名が 00001.png , 00002.png , ... 00101.png といった具合に。

どのように解決するのですか?

を使うことをお勧めします。 '@' を使用すると,スラッシュをより読みやすくエスケープすることができます。 Path.Combine(...) を連結するために、パスと PadLeft のように、ファイル名を指定することができます。

for (int i = 1; i < n; i++)
{
    try
    {
        from = System.IO.Path.Combine(@"E:\vid\","(" + i.ToString() + ").PNG");
        to = System.IO.Path.Combine(@"E:\ConvertedFiles\",i.ToString().PadLeft(6,'0') + ".png");

        File.Move(from, to); // Try to move
        Console.WriteLine("Moved"); // Success
    }
    catch (IOException ex)
    {
        Console.WriteLine(ex); // Write error
    }
}