2012-03-12 8 views
1

C#で "FileInfo"のインスタンスが得られました。 「C:\パス1」などC#FileInfo、ディレクトリの変更方法は?

このオブジェクトのパス「C:\パス2」 はどのように私はこれに(私が気づいたくさんあります)すべての関連するフィールドを変更することができます

感謝。

+1

私はあなたの新しいパスを使用して別のインスタンスを作成する必要があります怖いです。 –

+0

そのファイルを 'path1'フォルダから' path2'フォルダに移動しますか? –

答えて

3

できません。 FileInfoは、いくつかの既存のファイルへのポインタにすぎず、したがってプロパティは読み取り専用です。 extract filenamesのみを許可するPath操作クラスと、他のパスを使用するcombine操作クラスがあります。

+1

'FileInfo'はファイルまたはディレクトリを*記述します*。ファイルを記述する必要はなく、実際に記述されているものは実際には存在します。—、さらには** **ファイルであることもあります。たとえば、 'FileInfo instance = new FileInfo(" C:\\ ");'の実行は完全に合法で、 'Attribute'フラグが' Hidden | System | Directory'に設定された 'FileInfo'のインスタンスを返します。 'Exists'フラグは' false'に設定されています。 –

0

これは、FileInfoオブジェクトのインスタンス内のすべてのプロパティに変更されますちょうどことをあなたが行う方法ですあなたの新しいパスを含める。これもファイルを移動しますが、それがあなたの意図かどうかはわかりません。

myFileInfo.MoveTo(@"C:\path2\" + myFileInfo.Name); 

あなたが別のフォルダからすべてのファイルを移動したい場合は、この操作を行うことができます。

var directoryInfo = new DirectoryInfo(@"C:\path1"); 

var files = directoryInfo.GetFiles(); 

foreach (var fileInfo in files) 
{ 
    fileInfo.MoveTo(@"C:\path2\" + fileInfo.Name); 
} 
関連する問題