Удалить файлы с удаленного компьютера

Я пытаюсь удалить с удаленного компьютера каталог, содержащий файлы XML. Мой код компилируется и работает нормально, но когда я иду за списком XML-файлов по указанному мной пути, он ничего не возвращает. Я упускаю что-то мудрое разрешение?

Я запускал его со своего компьютера, входящего в систему как я, и с другого компьютера, входящего в систему как другой пользователь. Обе учетные записи имеют полный контроль над каталогом, содержащим файлы XML.

Я использую .NET 2.0.

   static void Main(string[] args) {
        string directory, ext = ".xml"; // have tried xml and .xml

        if (args.Length != 1) {
             // do absolutely nothing if we do not exactly 1 argument
        } else {
            Console.WriteLine("Argument accepted.");
            directory = args[0];

            // make sure the directory passed is valid
            if (ValidateDirectory(directory)) {
                Console.WriteLine("Directory is valid.");
                DeleteFiles(directory, ext);
            }
        }
        Console.WriteLine("Done.");
    }

    static bool ValidateDirectory(string d) {
        return Regex.IsMatch(d, @""); // I removed my regex - it validates properly
    }

    static void DeleteFiles(string d, string ext) {
        DirectoryInfo di;
        FileInfo[] fi;

        di = new DirectoryInfo(d);
        fi = di.GetFiles(ext);

        Console.WriteLine("Number of files = " + fi.Length + ".");
        foreach (FileInfo f in fi) {
            try {
                Console.WriteLine(f.FullName);
                f.Delete();
            } catch (Exception ex) {
                // do nothing when there is an exception
                // just do not want it to quit
                Console.WriteLine(ex.ToString());
            }
        }
    }
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
7 267
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Я предполагаю, что вы проходите по сетевому пути? Не получается при запуске программы по локальному пути? Эта строка: fi = di.GetFiles (ext); Вернуть какие-нибудь объекты fileInfo?

Вероятно, у вас есть какая-то небольшая проблема, которую можно исправить с помощью некоторой отладки.

Ответ принят как подходящий

Я думаю, вам следует использовать * .xml вместо простого .xml. Но я также согласен с Киралессой, сначала протестируйте на своей локальной машине, а затем добавьте сложность прохождения по сети.

в DeleteFiles у вас есть следующая строка:

fi = di.GetFiles (ext);

где ext - это расширение, которое вы передаете, и я считаю, что это просто '.xml'. Get files ищет любые файлы с именем '.xml'. GetFiles принимает подстановочные знаки, и я считаю, что это именно то, что вы собираетесь делать. Поставьте звездочку (*) впереди и попробуйте.

-Бретт

Что вы приводите в качестве аргумента? Вы используете подключенный диск или прямую ссылку (например, // сервер / папку)?

Вместо вашего ValidateDirectory вы должны использовать Directory.Exists (каталог), чтобы увидеть, может ли он вообще видеть каталог.

Я использую удаленный путь (\\ server \ folderx \ foldery). Эти файлы хранятся на одном из наших серверов, и моя программа очень специфична. Я хочу, чтобы он работал только с определенными каталогами, и все каталоги имели одинаковый формат.

Ryan Rodemoyer 24.10.2008 00:20

Следовать за:

Мне нужно было использовать * .xml (должен был знать об этом!), И теперь он работает.

Этот сайт отличный!

Другие вопросы по теме