Удалить файл для переработки в CSHARP с файловой системой VB.

StackOverflow https://stackoverflow.com/questions/4647612

Вопрос

У меня есть кусок кода, который вызывает метод deletefile в классе Microsoft.visualbasic.fileio.filessystem (в сборке Microsoft.visualBasic), чтобы отправить файл в корзину для корзины, а не на постоянном удалении. Этот код находится в управленной службе Windows и работает на компьютере Win Server 2K8 (32-разрядной).

Соответствующая строка:

FileSystem.DeleteFile(file.FullName, UIOption.OnlyErrorDialogs, RecycleOption.SendToRecycleBin, UICancelOption.DoNothing);

Конечно, у меня есть «Использование Microsoft.visualBasic.fileio;» В верхней части класса и проверили, что называется методом, на самом деле на классе файловой системы в этом пространстве имен. В вышеуказанной линии я ссылаюсь на локальную переменную «файл» - это файловый файл для локального файла (скажем, C: Path to file.txt) из которых я уверен, что он существует. Приложение имеет полный контроль над файлом, так и в каталоге.

Похоже, что это работает нормально, так как файл исчезает из каталога, в котором он был. Однако файл не отображается в корзину. Я пытался осматривать папки C: $ Recycle.bin вручную, когда я подозревал, что служба Windows работает в сеансе 0, заставит его в конечном итоге в другом корзине для корзины, но все корзины для переработки отображаются пустыми.

У кого-нибудь есть ключ относительно того, что вызывает это поведение?

Кстати - машина определенно не выходит из свободного места на рассматриваемой диске (или любой другой диск для этого), и файл очень маленький (пара килобайт, поэтому он не превышает порог корзины ).

Это было полезно?

Решение

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

Я не верю, что один пользователь может просмотреть содержимое корзины другого пользователя, - даже если вы можете увидеть некоторые доказательства их существования в папке C: $ Recycle.bin.


Если он работает под другой учетной записью пользователя, попробуйте входить в машину, используя эту учетную запись, а затем проверьте корзину Recycle. Если он работает под учетной записью службы (например, локальный сервис, сетевой сервис или локальная система), она будет сложнее.

Учитывая, что корзины для рециркуляции отдельно, как вы планируете использовать тот факт, что файл в любом случае в корзине в корзину?

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

Проблема может прийти от пользователя, выполняющего ваш сервис, не могли бы вы попытаться изменить выполнение пользовательской политики или изменить выполнение пользователя.

Во всяком случае, он также может произойти от выполненного сервиса без оболочки, так как корзина для корзины зависит от API оболочки. эта почта кажется, подтверждают эту проблему. Таким образом, вам нужно было бы сделать еще один подход к ACCE Shell API из вашего обслуживания.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top