如何验证inputdialog中给出的路径?

时间:2013-10-03 13:11:47

标签: validation vim input

我正在尝试验证inputdialog中给出的路径。

   "a = path to file p.e. d:\mydoc.txt (but can be every file)
   let a = inputdialog(docinput)

   while 1
    try
      read (a)
        catch /E484:/
        echo "The file doesn't exist"
        let a = inputdialog(docinput,a,"return") 
        if a == "return" 
          return
        endif
    endtry
   endwhile

我想使用read命令检查文件名是否存在 但似乎read无法读取变量 read必须是这样的:
read d:\mydoc.txt

1)如何阅读变量?

如果read给出错误消息(E484(无法读取文件)),脚本必须返回输入对话框。
我尝试在while / endwhile循环中使用try / endtry执行此操作,但我还没有找到如何突破循环。

2)如果文件不存在,如何将脚本返回到inputdialog?

1 个答案:

答案 0 :(得分:1)

  • 您必须使用:execute :read变量a中包含的文件名:

    execute "read " . a
    
  • :read是错误的工作工具,请使用filereadable()(或filewriteable(),具体取决于您要对该文件执行的操作):

    if filereadable(expand(a))
      " do something
    else
      " do something else
    endif
    

我无法理解你的第二个问题。