как защитить файлы - PullRequest
       11

как защитить файлы

0 голосов
/ 11 мая 2011

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

Но в моей программе на C # я хочу открыть файл, но кажется, что он не может найти файл, когда он уже скрыт файлом bat (if (File.Exists(ls_Path)) возвращает false).

Это связано с моим bat файлом?

Я тестировал в обычном режиме скрытия в окне, моя программа все еще может считывать данные с пути.

cls
@ECHO OFF
title Folder Locker
if EXIST "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" goto UNLOCK
if NOT EXIST Locker goto MDLOCKER
:CONFIRM
echo Are you sure u want to Lock the folder(Y/N)
set/p "cho=>"
if %cho%==Y goto LOCK
if %cho%==y goto LOCK
if %cho%==n goto END
if %cho%==N goto END
echo Invalid choice.
goto CONFIRM
:LOCK
ren Locker "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
attrib +h +s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
echo Folder locked
goto End
:UNLOCK
echo Enter password to Unlock folder
set/p "pass=>"
if NOT %pass%==123 goto FAIL
attrib -h -s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
ren "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" Locker
echo Folder Unlocked successfully
goto End
:FAIL
echo Invalid password
goto end
:MDLOCKER
md Locker
echo Locker created successfully
goto End
:End

1 Ответ

0 голосов
/ 24 мая 2011

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

Вместо:

    If objFSO.FileExists(someFileVariable) Then _
Set objTESTfile = objFSO.OpenTextFile(someFileVariable, ForReading, True, TristateFalse)

Вы бы имели:

On Error Resume Next
Set objTESTfile = objFSO.OpenTextFile(someFileVariable, ForReading, True, TristateFalse)
If Err.Number= 0 Then
    ' opened ok, do stuff
Else
    ' failed, do something else
End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...