2012-03-12 2 views
1

Я получил экземпляр «FileInfo» на C#.C# FileInfo, как сменить каталог?

Путь этого объекта, например, «C: \ path1» Как я могу изменить каждые соответствующие поля (есть много я заметил) на это в «C: \ PATH2»

спасибо.

+1

Боюсь, вам придется построить еще один экземпляр, используя свой новый путь. –

+0

Вы хотите переместить этот файл из папки 'path1' в папку' path2'? –

ответ

3

Вы не можете. FileInfo - это просто указатель на какой-либо существующий файл, и, следовательно, свойства являются только для чтения. Существуют и другие классы манипуляций Path, которые позволяют вам только extract filenames и combine их с другими путями.

+1

'FileInfo' просто * описывает * файл или каталог. Нет требования, чтобы он описывал файл или что то, что он описывает, фактически существует — или даже ** be ** файл. Например, выполнение 'FileInfo instance = new FileInfo (« C: \\ »);' совершенно законно и даст вам экземпляр 'FileInfo' с флагом 'Attribute', установленным на' Hidden | System | Directory' и флаг '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); 
} 
Смежные вопросы