Как написать простой C # скрипт для копирования файла в каталог на один уровень выше? - PullRequest
3 голосов
/ 29 января 2012

Попытка написать простой C # скрипт для копирования файла в каталог на один уровень выше.Вот что у меня есть, но оно отправляет ошибку:

"Script.OnActivate ()" не все пути кода возвращают значение.

и мой код:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Text;
using System.Text.RegularExpressions;
using System.IO;
using System.Windows.Forms;
using System.Globalization;

    class Script : CopyFile {

        public static bool OnActivate() {
            CopyDataFile("script/file.js", "../file.js");
        }

    }

РЕШЕНО!

using System;
using System.IO;

class Script : CopyFile {

    public static void OnActivate() {
        FileInfo myFile = new FileInfo("script/file.js"); 
        myFile.CopyTo(myFile.Directory.Parent.FullName + "\\" + myFile.Name); 
    }

}

Перемещает файл file.js в каталог на один уровень выше от «script /»

Ответы [ 2 ]

3 голосов
/ 29 января 2012

Описание такое, как описано. Вам нужно изменить свой OnActive на void или вернуть логическое значение (т. Е. Если CopyDataFile возвращает логическое значение, тогда вернуть CopyDataFile (...))

2 голосов
/ 29 января 2012

Ошибка возникает из-за того, что вы не возвращаете bool

   public static bool OnActivate() {
        CopyDataFile("script/file.js", "../file.js");
        return true;
    }

Если вы не хотите возвращать что-либо, измените метод возврата void, выполните следующее

   public static void OnActivate() {
        CopyDataFile("script/file.js", "../file.js");
    }

MSDN Оператор void вычисляет свое выражение и возвращает неопределенное значение.Это наиболее полезно в ситуациях, когда вы хотите, чтобы выражение было оценено, но не хотели, чтобы результаты были видны до конца скрипта.

...