ファイルの作成・削除・移動・コピー
今はグラフィックス・ユーザー・インターフェース(GUI)が発達しているので、コマンドを使ってファイルの作成・削除・移動・コピーをやることはないと思いますが、.NET
Frameworkを使ってやってみましょう。
System.IOのFileクラスを使用する
System.IOのFileクラスを使用してみます。インタラクティブシェルを使って動作を確認してみましょう。
>>> from System.IO import File
>>> fs = File.Create("c:\\test\\test.txt") ←FileSteamクラスが生成される。
>>> File.Move("c:\\test\\test.txt","c:\\test.txt")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IOError: [Errno 32] ファイルが別のプロセスで使用されているため、プロセスは
ファイルにアクセスできません。
>>> fs.Close()
>>> File.Move("c:\\test\\test.txt","c:\\test.txt")
>>> File.Copy("c:\\test.txt","c:\\test\\test.txt")
>>> File.Delete("c:\\test.txt")
File.Createメゾットを実行するとFileStreamクラスが生成されます。FileStreamクラスをちゃんとCloseしないと、作成したファイルの他の作業が出来ません。これはWindowsで行うときと一緒ですね。
System.IOのFileInfoクラスを使用する
今度はSystem.IOのFileInfoクラスを使用してみます。Fileクラスでやったことと同じことをやってみましょう。
>>> from System.IO import FileInfo
>>> fi = FileInfo("c:\\test\\test.txt")
>>> fs = fi.Create()
>>> fi.MoveTo("c:\\test.txt")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IOError: [Errno 32] ファイルが別のプロセスで使用されているため、プロセスは
ファイルにアクセスできません。
>>> fs.Close()
>>> fi.MoveTo("c:\\test.txt")
>>> fi ←fiの示すオブジェクトが変更しているかの確認。
<System.IO.FileInfo object at 0x000000000000002C [c:\test.txt]>
>>> fi.CopyTo("c:\\test\\test.txt")
<System.IO.FileInfo object at 0x000000000000002B [test.txt]>
>>> fi.Delete()
MoveToメゾットを実行した時点で、fiが示してるオブジェクトは"c:\\test.txt"に変更されています。従って、Deleteメゾットすると"c:\\test.txt"が削除されます。