Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
84 / 84 / 20
Регистрация: 26.10.2009
Сообщений: 269
1

работа с файлами, переместитть файлы в рандомную директорию!

22.11.2010, 03:13. Просмотров 928. Ответов 6
Метки нет (Все метки)

проблема возникла с Move
переместить файлы с каким-то расширением в рандомно созаднную директорию

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
static void Main(string[] args)
        {
 
            string dirrect = @"J:\Study\Belhard\C#\HomeWork\HomeWork12 (на 21.11)\HomeWork"; // сдесь 
            //лежат 2 документа txt Blank и Test
 
 
            string[] dirs = Directory.GetFiles(dirrect, "*.txt"); // проверяю есть ли файлс с расширением txt
            Console.WriteLine("The number of files starting with c is {0}.", dirs.Length);
 
 
// -----------------------
// сдесь рандомлю создание папки на разных дисках
            string[] masFolder = new string[] { @"C:\Hide\", @"D:\Hide\", @"E:\Hide\", @"J:\Hide\" };
            Random rand = new Random();
            string hidenFolderName = masFolder[rand.Next(masFolder.Length)];
            Directory.CreateDirectory(hidenFolderName);
//   ---------------------------          
            
 
for (int i = 0; i < dirs.Length; i++)
            {
                Console.WriteLine(dirs[i]);
                // move in new folder
                if (File.Exists(dirs[i]))
                {
                    Console.WriteLine("Все файлы зи папки \"HomeWork\" перенесены!!");
                    File.Move(dirs[i], hidenFolderName + "Test.txt");
 
                    File.Move(dirs[i], hidenFolderName + "Blank.txt");
                }
                else
                {
                    Console.WriteLine("В папке \"HomeWork\" нету файлов!!");
                }
 
            }
            Console.WriteLine();
 
                    //*/
 
                    
           }


Проблемавот сдесь
[I]File.Move(dirs[i], hidenFolderName + "Test.txt");
File.Move(dirs, hidenFolderName + "Blank.txt");

получается долджно быть так

File.Move(@"C:\Hide\Blank.txt", hidenFolderName + "Test.txt");
так нормально

но в цикле то он не знает что перемещать точнее какой файл

сопсна вопрос что нужно написать вместо hidenFolderName + "Test.txt"

если есть какие замечание, тожехотелось бы услышать, может можно как-то по другому сделать
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.11.2010, 03:13
Ответы с готовыми решениями:

Работа с dds файлами: получить анимированное изображение, достав из этого файлы все его части
Есть dds файл, в неё 160 маленьких изображений. К нему идет описание типа: 0 4...

Работа с файлами: вывести рандомную строку из файла
У меня имеется файл main.txt, в каждой строке этого файла записано слово из шести букв. Нужно,...

Работа с файлами: каждый файл переместить в директорию с таким же именем (расширения отбрасывать).
Здравствуйте, есть такое задание: Каждый файл переместить в директорию с таким же именем...

Нужно сделать рандомную паузу и рандомную скорость объекта
Имеется код, который бесконечно передвигает объект в определенную точку и обратно. using...

6
6 / 6 / 1
Регистрация: 19.11.2010
Сообщений: 18
22.11.2010, 11:15 2
может быть так подойдет

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
using System;
using System.IO;
namespace dirs
{
    class Program
    {
        static void Main(string[] args)
        {
            // Например, здесь лежат файлы
            string dirrect = @"C:\ttt";
            // Пишем в dirs полный путь с именами файлов *.txt
            string[] dirs = Directory.GetFiles(dirrect, "*.txt");           
            // Массив рандомных папок
            string[] masFolder = new string[] { @"C:\ttt\1\", @"C:\ttt\2\", @"C:\ttt\3\", @"C:\ttt\4\" };
            Random rand = new Random();
            // Выбираем рандомную папку из массива masFolder
            string hidenFolderName = masFolder[rand.Next(masFolder.Length)];
            // Создаем рандомную папку
            Directory.CreateDirectory(hidenFolderName);
            // Массив с именами файлов
            string[] fName=new string[dirs.Length];
            for (int i = 0; i < dirs.Length; i++)
            {
                // Берем из dirs имя_файла.расширение и пишем его в fName
                fName[i]=dirs[i].Substring(dirs[i].Length-dirrect.Length-1,dirrect.Length+1);
                // Если файл существует, то перемещаем его в рандомную папку
                if (File.Exists(dirs[i]))
                {File.Move(dirs[i], hidenFolderName +fName[i]);}
            }
            // Главная заключительная часть =)
            Console.Write("Press any key to continue =)");
            Console.ReadKey(true);
        }
    }
}
0
84 / 84 / 20
Регистрация: 26.10.2009
Сообщений: 269
22.11.2010, 14:24  [ТС] 3
ругется на
C#
1
 File.Move(dirs[i], hidenFolderName + fName[i]); }
0
6 / 6 / 1
Регистрация: 19.11.2010
Сообщений: 18
22.11.2010, 14:46 4
Когда массив masFolder создаешь и пишешь туда свои пути..пишешь их так 1) @"диск:\путь" или так 2) @"диск:\путь\"?
C#
1
string[] masFolder = new string[] { @"C:\ttt\1\", @"C:\ttt\2\", @"C:\ttt\3\", @"C:\ttt\4\" };
Для варианта 1:
C#
1
fName[i]=dirs[i].Substring(dirs[i].Length-dirrect.Length-2,dirrect.Length+2);
Для варианта 2:
C#
1
fName[i]=dirs[i].Substring(dirs[i].Length-dirrect.Length-1,dirrect.Length+1);
0
84 / 84 / 20
Регистрация: 26.10.2009
Сообщений: 269
22.11.2010, 14:49  [ТС] 5
Цитата Сообщение от ZaVyLoN Посмотреть сообщение
ругется на
C#
1
 File.Move(dirs[i], hidenFolderName + fName[i]); }

оно обрезает неправильно
у нас же разной длины имена фалов

а на экранвыводит fName[i]

ork\Blank.txt
Work\Test.txt

Добавлено через 2 минуты
Цитата Сообщение от spy_3462 Посмотреть сообщение
Когда массив masFolder создаешь и пишешь туда свои пути..пишешь их так 1) @"диск:\путь" или так 2) @"диск:\путь\"?
да
я код полностью скопал, чтобы для начала убедиться что работает
0
6 / 6 / 1
Регистрация: 19.11.2010
Сообщений: 18
22.11.2010, 19:46 6
исправил
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using System;
using System.IO;
namespace dirs
{
    class Program
    {
        static void Main(string[] args)
        {
            string dirrect = @"C:\ttt";
            string[] dirs = Directory.GetFiles(dirrect, "*.txt");
            string[] masFolder = new string[] { @"C:\ttt\1\", @"C:\ttt\2\", @"C:\ttt\3\", @"C:\ttt\4\" };
            Random rand = new Random();
            string hidenFolderName = masFolder[rand.Next(masFolder.Length)];
            Directory.CreateDirectory(hidenFolderName);
            int startIndex=0;
            int length=0;
            string[] fName=new string[dirs.Length];
            for (int i = 0; i < dirs.Length; i++)
            {
                startIndex=dirrect.Length+1;
                length=dirs[i].Length-dirrect.Length-1;
                fName[i]=dirs[i].Substring(startIndex,length);
                if (File.Exists(dirs[i]))
                {File.Move(dirs[i], hidenFolderName +fName[i]);}
            }
            Console.ReadKey(true);
        }
    }
}
1
84 / 84 / 20
Регистрация: 26.10.2009
Сообщений: 269
22.11.2010, 22:53  [ТС] 7
.. спс
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.11.2010, 22:53

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Файлы, работа с файлами
В общем такая трабла. Задание:создать файл ф1 содержащий не менее 10 строк,скопировать из файла ф1...

текстовые файлы,Работа с файлами
Помогите пожалуйста, очень важно,это мой допуск к зачету. Задча1:Дан текст,хранящийся в текстовом...

Как массово вставить в файлы .txt рандомную строку?
Как массово вставить в файлы .txt во вторую строку из файла key.txt рандомную строку?

Работа с файлами курсоров. (.cur файлы)
Здравсвуйте. Вот так делаю загрузку курсора в TImage: var hCursor:LongInt; Bitmap:TBitMap;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.