【问题标题】:how to protect files如何保护文件
【发布时间】:2011-05-11 08:25:25
【问题描述】:

我正在使用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

【问题讨论】:

    标签: file batch-file vbscript


    【解决方案1】:

    使用 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
    

    【讨论】:

      猜你喜欢
      • 2011-06-13
      • 2011-04-30
      • 1970-01-01
      • 2017-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-16
      • 2013-06-25
      相关资源
      最近更新 更多