Папки копии в C# с помощью Системы. IO

посмотри, что я здесь сделал? Вы можете использовать параметр indexPath, чтобы получить раздел & amp; введите пользователя, которого вы коснулись, и тогда вы сможете настроить свой программный переход.

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
{
    if ((indexPath.section == 0) && (indexPath.row == 5)) {
        performSegue(withIdentifier: "GoToSecondViewController", sender: nil)
     } else {
        let productLine = productLines[indexPath.section]
        let product = productLine.products[indexPath.row]
        selectedProduct = product
        performSegue(withIdentifier: "ShowProductDetail", sender: nil)
    }
}
14
задан Etienne 24 March 2009 в 12:55
поделиться

7 ответов

Эта ссылка обеспечивает хороший пример.

http://msdn.microsoft.com/en-us/library/cc148994.aspx

Вот отрывок

// To copy all the files in one directory to another directory.
// Get the files in the source folder. (To recursively iterate through
// all subfolders under the current directory, see
// "How to: Iterate Through a Directory Tree.")
// Note: Check for target path was performed previously
//       in this code example.
if (System.IO.Directory.Exists(sourcePath))
{
  string[] files = System.IO.Directory.GetFiles(sourcePath);

  // Copy the files and overwrite destination files if they already exist.
  foreach (string s in files)
  {
    // Use static Path methods to extract only the file name from the path.
    fileName = System.IO.Path.GetFileName(s);
    destFile = System.IO.Path.Combine(targetPath, fileName);
    System.IO.File.Copy(s, destFile, true);
  }
}
17
ответ дан 1 December 2019 в 06:16
поделиться

существует копия файла. Воссоздайте папку и скопируйте все файлы от исходного каталога до нового одного примера

static void Main(string[] args)
    {
        DirectoryInfo sourceDir = new DirectoryInfo("c:\\a");
        DirectoryInfo destinationDir = new DirectoryInfo("c:\\b");

        CopyDirectory(sourceDir, destinationDir);

    }

    static void CopyDirectory(DirectoryInfo source, DirectoryInfo destination)
    {
        if (!destination.Exists)
        {
            destination.Create();
        }

        // Copy all files.
        FileInfo[] files = source.GetFiles();
        foreach (FileInfo file in files)
        {
            file.CopyTo(Path.Combine(destination.FullName, 
                file.Name));
        }

        // Process subdirectories.
        DirectoryInfo[] dirs = source.GetDirectories();
        foreach (DirectoryInfo dir in dirs)
        {
            // Get destination directory.
            string destinationDir = Path.Combine(destination.FullName, dir.Name);

            // Call CopyDirectory() recursively.
            CopyDirectory(dir, new DirectoryInfo(destinationDir));
        }
    }
18
ответ дан 1 December 2019 в 06:16
поделиться

да Вы правы.

http://msdn.microsoft.com/en-us/library/system.io.directoryinfo.aspx

обеспечил функцию копии.. или можно использовать другую функцию

http://msdn.microsoft.com/en-us/library/ms127960.aspx

4
ответ дан 1 December 2019 в 06:16
поделиться

Копирование каталогов (правильно) является на самом деле довольно сложной задачей особенно при принятии во внимание усовершенствованных методов файловой системы как соединения и жесткие ссылки. Ваш лучший выбор состоит в том, чтобы использовать API, который поддерживает его. Если Вы не боитесь небольшого P/Invoke, SHFileOperation в shell32 является Вашим лучшим выбором. Другая альтернатива должна была бы использовать Microsoft. VisualBasic. FileIO.FileSystem. Метод CopyDirectory в Microsoft. Блок VisualBasic (даже если Вы не используете VB).

5
ответ дан 1 December 2019 в 06:16
поделиться

Вы правы. Нет никакого Каталога. Метод копии. Это был бы очень мощный метод, но также и опасный, для не подозревающего разработчика. Копирование папки может potentionaly быть очень трудоемкой операцией, в то время как перемещение одного (на том же диске) не.

Я предполагаю, что Microsoft думала, что сделает с тех пор для копирования файла файлом, таким образом, можно затем показать некоторую информацию о прогрессе. Вы могли выполнить итерации канавки файлы в каталоге путем создания экземпляра DirectoryInfo и затем вызова GetFiles (). Чтобы также включать подкаталоги, можно также назвать GetDirectories () и перечислить канавку они с рекурсивным методом.

2
ответ дан 1 December 2019 в 06:16
поделиться

Необходимо будет создать новый каталог с нуля затем цикл через все файлы в исходном каталоге и скопировать их.

string[] files = Directory.GetFiles(GlobalVariables.mstrReadsWellinPath);
foreach(string s in files)
{
        fileName=Path.GetFileName(s);
        destFile = Path.Combine(DestinationPath, fileName);
        File.Copy(s, destFile);
}

Я оставляю создание целевого каталога Вам :-)

2
ответ дан 1 December 2019 в 06:16
поделиться

Эта статья предоставляет alogirthm для копирования рекурсивно некоторой папки и всего ее содержания

От статьи:

Печально в Системе нет никакой встроенной функции. IO, который скопирует папку и ее содержание. Следующее является простым рекурсивным алгоритмом, который копирует папку, ее подпапки и файлы, создавая папку назначения в случае необходимости. Для простоты нет никакой обработки ошибок; исключение бросит, если что-нибудь пойдет не так, как надо, такие как пустые или недопустимые пути или если целевые файлы уже существуют.

Удачи!

1
ответ дан 1 December 2019 в 06:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: