2014-02-04 3 views
1

Я новичок и разрабатываю приложение для Windows, где у меня есть файл csv, когда я загружаю этот файл csv, он должен создавать новые папки с этим именем, а затем изображения с этим именем папки должны быть скопированы в папку. Я застрял в этом и понятия не имею, как это сделать.создать папку на основе текста в csv с помощью C#

**csv file**-- folders to be created with these names according to csv file. 
LC53NYN 
PJ55BCX 
L0O2O 
WJ13XLL 

Изображения будут скопированы

код:

class Program 
{ 
    static void Main() 
    { 
    // 
    // Create new folder in C:\ volume. 
    // 
    Directory.CreateDirectory("C:\\LC53NYN"); 
+1

Изображения с этой папкой-именем? Можете ли вы объяснить свое требование более четко? –

+0

Вы пытаетесь создать каталоги на основе текста в CSV-файле, а затем скопировать файлы в этот каталог? Нам нужно точно видеть, что вы пытаетесь выполнить. –

+0

yes Создайте папку на основе текста в csv adn скопируйте те изображения, у которых есть одинаковые изображения с именами файлов с ними – preethi

ответ

3

Что-то вроде

string[] lines = File.ReadAllLines("YourCSV.csv"); 

Даст вам все строки в пределах данного файла. Пока у вас есть только один столбец в этом файле, он будет работать. Если вы расширите столбцы, вы должны получить реальный анализ CSV.

Тогда вы можете перемещаться по линиям с использованием

foreach(string line in lines) 
{ 
} 

В этом блоке вы можете создать папку и переместить изображение

// Creates a folder like "C:\MyFolders\LC53NYN\" 
Directory.CreateDirectory(@"C:\MyFolders\" + line); 

// Moves the image (eg. "C:\MyImages\LC42NYN.png") to the created folder 
File.Move(@"C:\MyImages\" + line + ".png", @"C:\MyFolders\" + line); 

Но вы должны придерживаться его вместе самостоятельно. Кроме того, создание и перемещение может быть выполнено лучше. У вас есть место для его расширения.

EDIT:

Как TIPP, основанный на комментарий Тима, вы могли бы сделать что-то вроде

// Get directory path 
string directory = Path.Combine(@"C:\MyFolders", line); 

Чтобы получить имя каталога первого. И использовать это с другими действиями, такими как:

// Creates a folder like "C:\MyFolders\LC53NYN\" 
Directory.CreateDirectory(directory); 

// Moves the image (eg. named "LC42NYN.png") to the created folder 
File.Move(@"C:\MyImages\" + line + ".png", directory); 

EDIT 2:

Если у вас есть изображение в папке с таким же именем, как использование изображения:

// Get the source path as C:\MyImages\[Code]\[Code].png 
string sourcePath = Path.Combine(@"C:\MyImages\", line, line + ".png"); 

И тогда переместить с использованием

// Move it 
File.Move(sourcePath, directory); 
+0

Side-note: вместо 'Directory.CreateDirectory (@" C: \ MyFolders \ "+ line);' я бы использовал 'Directory.CreateDirectory (Path.Combine (« C: \\ », line));'. –

+0

Я бы тоже, но я хотел сохранить его максимально простым и быстрым. Из-за OP, вероятно, может расстроиться, используя еще более неизвестные методы. – SlapY

+1

Идеальное время для изучения этих неизвестных методов. Изучение полезных, но unknwon методов не должно быть удручающим для «новичка». Если вы начинаете использовать неправильный метод, вы часто продолжаете его использовать. –

Смежные вопросы