Копированеи файлов на расшаренную папку

  • Автор темы georgiy_lk
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

georgiy_lk

Гость
#1
Мне нужно написать программу для копирования файлов с обного конпа в локалке в расшаренную папку другого. Дайте пожалуйста пример метода подключения к расшаренной папки другого компа, что бы мжно было с ней работать (т.е. копировать/удалять файлы/папки)
 
G

georgiy_lk

Гость
#3
С файлами разобрался, а вот с папками не могу. У обьекта File есть методы Create, Copy и т.д. а вот у обьекта Folders нет метода Copy(зато есть Move :( ). Я второй день бьюсь на тем как можно скопировать папку со всем ее содержимым и мне так ничего в голову не пришло. Помогите плиз... Дайте код или хотябы алгоритм решения проблемы. Есть некая папка А и она может содержать сколько угодно файлов и папок внутри себя, соответственно папки внутри А могут тоже содержат свои вложенные папки и файлы и т.д.. Как можно скопировать папку А со всем ее содержимым(например с диска C: на D:)?
 
E

Electro

Гость
#4
System.IO.Directory
Directory - класс
Предоставляет статические методы для создания, перемещения и перечисления в папках и вложенных папках.
В приведенном примере определяется, существует ли папка, если это так, она удаляется, в противном случае — создается. Затем папка перемещается, в ней создается файл и производится подсчет файлов в папке.
Код:
undefined
using System;
using System.IO;

class Test
{
public static void Main()
{
// Specify the directories you want to manipulate.
string path = @"c:\MyDir";
string target = @"c:\TestDir";

try
{
// Determine whether the directory exists.
if (!Directory.Exists(path))
{
// Create the directory it does not exist.
Directory.CreateDirectory(path);
}

if (Directory.Exists(target))
{
// Delete the target to ensure it is not there.
Directory.Delete(target, true);
}

// Move the directory.
Directory.Move(path, target);

// Create a file in the directory.
File.CreateText(target + @"\myfile.txt");

// Count the files in the target directory.
Console.WriteLine("The number of files in {0} is {1}",
target, Directory.GetFiles(target).Length);
}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
finally {}
}
}
ВСЕ ВЗЯТО ИЗ MSDN
 
G

georgiy_lk

Гость
#5
Я вот тоже тока сеня нашол это на MSDN (сранно но по тем же словам что и вчера). Спасибо. Сеня дома поковыряюсь. :)
 
G

georgiy_lk

Гость
#6
кот Electro перемещает, а не копирует папку.
Если кому нужо вот решение. Работает 100%.
Код:
using System;
using System.IO;

namespace DirectoryInfoCS2
{
class Class1
{
// Copy a source directory to a target directory.
static public void CopyDirectory(string SourceDirectory, string TargetDirectory)
{
DirectoryInfo	source = new DirectoryInfo(SourceDirectory);
DirectoryInfo	target = new DirectoryInfo(TargetDirectory);

//Determine whether the source directory exists.
if(!source.Exists)
return;
if(!target.Exists)
target.Create();

//Copy files.
FileInfo[] sourceFiles = source.GetFiles();	
for(int i = 0; i < sourceFiles.Length; ++i)
File.Copy(sourceFiles[i].FullName, target.FullName + "\\" + sourceFiles[i].Name,true);

//Copy directories.
DirectoryInfo[] sourceDirectories = source.GetDirectories();	
for(int j = 0; j < sourceDirectories.Length; ++j)
CopyDirectory(sourceDirectories[j].FullName,target.FullName +"\\" + sourceDirectories[j].Name);
}

static void Main(string[] args)
{
CopyDirectory("D:\\Tools","D:\\NewTools");
}
}
}
 
E

Electro

Гость
#7
Неправда "КОТик" был не мой, а Microsoft from MSDN.
И "Работает 100%." - не спеши. Как быть с файлами в папках
Второго, третьего и т.д. вложений.
 
Статус
Закрыто для дальнейших ответов.