Rails中的跨平台文件名

时间:2012-06-20 06:23:06

标签: ruby-on-rails ruby filesystems cross-platform

我有一个输入字段,用户正在插入文件名。然后正在创建具有此名称的文件。问题在于不同操作系统上的文件系统之间的差异。在用户方面,我有一个javascript regexp。这是:

/^[0-9a-zA-Z\^\&\'\@\{\}\[\]\,\$\=\!\-\#\(\)\.\%\+\~\_ ]{1,228}$/

它只允许使用字母数字字符和指定的符号。另外,我需要我的服务器端代码来尝试创建文件(如UNIX / LINUX OS中的touch命令)并处理错误(如果有的话)。我怎么能在Ruby上做到这一点?是否有更好的跨平台产品解决方案?

1 个答案:

答案 0 :(得分:0)

我解决了文件名无效时捕获异常的问题并将其打印给用户。

begin
     touch_file = open("#{@base_dir}#{file_name}", 'w')
     if touch_file
        #here goes code for opening file and inserting some text into it
     end
     rescue Exception => msg
          #here I return msg.message to user

 end