精华内容
下载资源
问答
  • ①在文件或文件夹名中,可用1~256个字符西文字符或128个汉字(包括空格)组成,不能多于256个字符。 ②文件名或文件夹名中不可以出现以下字符:\/:※?”<>| ③文件名和文件夹名中可以使用汉字和空格...

    如下图

    在这里插入图片描述
    最上面显示的是已经上传并且查找成功 “+ -.txt”文件,但是点击下载时,后台报如上错误,貌似直接丢掉了+号。查了有关windows文件命名规则:

      ①在文件或文件夹名中,可用1~256个字符西文字符或128个汉字(包括空格)组成,不能多于256个字符。
      
      ②文件名或文件夹名中不可以出现以下字符:\/:※?”<>|
    
      ③文件名和文件夹名中可以使用汉字和空格,但是空格不可以作为文件名的开头字符或单独作为文件名。
    
      ④可以使用多分隔符的名字,但只有最后一个分隔符后面的部分是文件的扩展名。
    
      ⑤文件名和文件夹名可以由字母、数字、汉字或~、!、@、#、$、%、^、&、( )、_、-、{}、’等组合而成。
    

    并没有限制+号啊,暂时记录此问题,留待以后解决。

    展开全文
  • Jmeter实际上是需要安装,而且同时在Windws和Linux下运行,而要解决这两个环境运行兼容性问题,有两点需要注意:一是路径问题及路径符号,二是字符集编码,解决了这两个问题,我们就Windows下调试通过...

           Jmeter实际上是不需要安装的,只需要有ApacheJMeter.jar、启动批处理文件(jmeter.bat或jmeter)、配置文件(jmeter.properties、user.properties、saveservice.properties等)、lib文件(一堆的jar包)就足够在Windws和Linux下运行了,纯绿色并且是轻量级的(总共不到50M就够用了)。另外Jmeter各个版本中,首先推荐的是Jmeter3.1版本,因为它足够新,而且同时兼容JDK1.7和1.8(但要注意的是,Server端和Client端还是应该保持统一版本的JDK),更高的版本就不再支持JDK1.7了。

           既然Jmeter能同时在Windws和Linux下运行,那么我们还需要注意什么呢?有两点,一是路径关系及路径符号,二是字符集编码,解决了这两个问题,我们就能将Windows下调试通过的Jmeter包(包括jmx脚本)全部复制到Linux下并直接就可以用jmeter启动文件调用jmx脚本跑起来,甚至连输出jtl报告、CSV报告、html报告都能完全兼容。

    一、路径问题

    1、很多人习惯用绝对路径,这样的话兼容性就很差了,把脚本迁移到另一台机器就要重新配置。其实相对路径只要应用得当,可以让脚本的兼容性提升很多。

          首先应该理解Jmeter的相对路径是怎么定义的,其实Jmeter的相对路径是指脚本所对应的目录,比如脚本jmx在D:\testJmeter下,那么CSV Data Set Config就可以配成以下相对路径:


    这个路径就表示,ID.csv文件对应的绝对路径是D:\testJmeter\dat\ID.csv。

    同样如果Beanshell中引用了Java的相对路径如下:


    那么就表示对应的绝对路径是D:\testJmeter\etlCount.java

    2、以上举的例子是在Windows下的,到了Linux下就会报错,这是因为Linux识别路径的符号不是反斜杆"\",而是正斜杠"/",而且windows下兼容性是最好的,无论正反斜杠都能识别,所以我们filename应该改为dat/ID.csv,同样source引用java文件,也可以改成如下:


    3、第三个问题,也就是jmx脚本文件到底应该放哪比较好,虽然以上的相对路径能够解决换电脑后不需要修改文件路径了,但还是不够可靠,这是因为jmeter执行文件是在bin目录下的,很多时候程序默认是以jmeter的bin目录为根路径的,如果参数文件或是java文件的相对路径不是以bin为开始目录,很可能在分布式测试时,就出现远程代理机所调用的文件路径与本地脚本不一致。

          所以最好的方式是,将jmx脚本统一放在bin目录下,然后参数文件或是source文件再以脚本的相对路径进行匹配。比如参数文件的绝对路径为:D:\testJmeter\bin\dat\ID.csv,这样相对路径还会是dat/ID.csv,那么换任何一种环境,或是用任何一种方式调用(比如通过Ant调用)都能保证找到一致路径下的文件。

          同时,还要确保所有被调用的jar放到lib/ext目录下(其实放到lib目录下也行),这样就不需要配置jar的路径了,程序会自动找到这个目录并调用jar包。

    总结:相对路径只是为了方便代码或脚本的迁移,而将脚本放到bin目录下,只是方便默认路径的引用,否则就要通过配置环境变量(如export)或是在build.xml中配置好jmeter的执行目录、根目录才能保证路径的正确性。

    4、另外我们在编码过程中,也有意识的多用一些相对路径(很多程序都具有这样的功能,这能为我们省掉一些麻烦),如下:

    /**
       * 获得excel文件的路径
       * @return
       * @throws IOException
       */
      public String getPath(String fileName) throws IOException {
          File directory = new File(".");
          sourceFile = directory.getCanonicalPath() + "/DataSource/"
                  + fileName + ".xls";
          return sourceFile;
      }

    二、字符编码问题

          只要是在我们的参数文件或是java文件中使用了中文,就避免不了编码兼容性的问题。我们经常会碰到在Windows下编辑好的文件,到了linux下就显示中文乱码,甚至通过Jmeter输出的日志、发送的请求都成了乱码。

          解决这个问题的最好方式,是统一编码,一般我们都是统一采用UTF-8编码,或者在Linux环境中安装部署更多的中文支持包。

          如果当我们的参数文件或是Java文件在Linux下读取时出现乱码,我们最简单的一种方式是用在Windows下用编辑器(如UltraEdit)另存为无BOM的UTF-8格式,记住是无BOM的,否则到了Linux环境就会出现编译错误(如果纯粹只写不读取的文件,是否带BOM头就无所谓了)。从这点来说,Windows对编码格式的处理要比Linux兼容性强(开源的东西,总是要处处踩着坑才能过去)。

          关于Jmeter的编码问题,可以参照我的另一篇文章 http://blog.csdn.net/smooth00/article/details/70236638

          需要说明的是jmeter响应数据默认编码格式是ISO-8859-1(向下兼容ASCII,自身不显示中文,依赖于平台的编码来显示中文),Windows默认保存的文件编码格式是ANSI/ASCII(但Windows默认以GBK来显示中文),而在Linux我们通常默认以UTF-8编码格式来显示中文。所以这三者如果能统一的话,就可以避免乱码显示。另外就是很多网站是以UTF-8或gb18030(GBK)编码来显示中文的,通过Jmeter来发送邮件时最好注意一下Web展示方面的问题。

          jmeter的配置文件jmeter.properties中可以修改sampler响应数据的编码:

    # The encoding to be used if none is provided (default ISO-8859-1)
    #sampleresult.default.encoding=ISO-8859-1
         也可以通过后置处理器BeanShell PostProcessor来修改显示的编码:


          如果我们不想麻烦,就是说不愿意去花时间统一linux和windows的中文编码,那么除了上面提到的手动将文件(如etlCount.java)另存为UTF-8 -无BOM格式,再传到linux中运行的方法,也可以写个批处理,将从windows传过来的文件强制转为UTF-8格式,具体大家可以灵活应用:

    iconv -f gbk -t utf-8 etlCount.java >etlCount.java.bak
    mv -f etlCount.java.bak etlCount.java

          最后再说一种情况:同样是utf-8格式,Linux下创建的文件是不带BOM头的,那么到Windows下用相关软件比如Excel打开就会显示乱码,实际上Excel支持utf-8的中文显示,只是因为没有BOM头,所以导致格式判断和识别错误。解决的办法就是在Java中生成csv之类文件的时候,强制加上BOM头((byte)0xEF, (byte)0xBB, (byte)0xBF):

    File file = new File("output.csv");
    OutputStream out = new FileOutputStream(file);
    out.write(new byte[]{(byte)0xEF, (byte)0xBB, (byte)0xBF});
    out.write("date,CountName,业务库,数据中心,国家库,result\r\n".getBytes());
    out.close();

    展开全文
  • Windows 有一些字符是不能作为文件名,尝试重命名一个文件,输入/ 就可以看到windows 提示的不能作为文件名字符,那么具体是包括哪些符号不能作为文件名呢?下面小编给大家介绍下
  • 1、文件名或文件夹名可以由1~256个西文字符或128个汉字(包括空格)组成,不能多于256个字符。 2、文件名可以有扩展名,也可以没有。有些情况下系统会为文件自动添加扩展名。一般情况下,文件名与扩展名中间用符号...

    在实际开发中又是会碰到"文件名、目录名或卷标语法不正确。"这样的错误信息,基本就是由于文件命名出现问题。

    在Windows下: 

    1、文件名或文件夹名可以由1~256个西文字符或128个汉字(包括空格)组成,不能多于256个字符。
    2、文件名可以有扩展名,也可以没有。有些情况下系统会为文件自动添加扩展名。一般情况下,文件名与扩展名中间用符号“.”分隔。
    3、文件名和文件夹名可以由字母、数字、汉字或~、!、@、#、$、%、^、&、( )、_、-、{}、’等组合而成。
    4、可以有空格,可以有多于一个的圆点。
    5、文件名或文件夹名中不能出现以下字符:\、/、:、*、?、"、<、>、| 。
    6、不区分英文字母大小写。

     

    在Linux下:

    1、除了/之外,所有字符都合法;
    2、特殊字符如@、#、¥、&、()、-、空格等最好不要使用,当使用空格作为文件名时,执行命令会出错。
    3、避免使用”.”作为文件名的第一个字符,因为在Linux系统中以”.”为开头的文件代表隐藏,系统将自动隐藏以”.”为开头的文件。
    4、Linux系统区分大小写,因此文件命名也区分大小写。
    5、Linux文件后缀名无意义,但是为方便识别应定义后缀(.txt、.php等),定义后缀在大多数情况亦能将文件与目录区分。
    6、文件位置最好设置在Linux专用目录下,如配置文件大多时候放置于/etc目录下。
    7、三个特殊目录,”.”:代表当前目录,”..”:代表上一级目录,”/”:代表根目录。
    8、在x86_64 Linux下,文件名的最大长度是255个字符(characters),文件路径的最大长度是4096字符(characters), 即可以包含16级的最大文件长度的路径。
     
     
     
     

    转载于:https://www.cnblogs.com/mrnx2004/p/9817068.html

    展开全文
  • C# 不能用于文件名字符 ... 在 Windows 有一些字符是不能作为文件名,尝试重命名一个文件,输入/ 就可以看到windows 提示的不能作为文件名字符 那么具体是包括哪些符号不能作为文件名? ...
    原文:C# 不能用于文件名的字符

    在 Windows 有一些字符是不能作为文件名,尝试重命名一个文件,输入/ 就可以看到windows 提示的不能作为文件名的字符

    那么具体是包括哪些符号不能作为文件名?

    • Tilde (~)
    • Number sign (#)
    • Percent (%)
    • Ampersand (&)
    • Asterisk (*)
    • Braces ({ })
    • Backslash (\)
    • Colon (:)
    • Angle brackets (< >)
    • Question mark (?)
    • Slash (/)
    • Plus sign (+)
    • Pipe (|)
    • Quotation mark (")

    上面这些字符不能用来文件名和文件夹名

    而且在 windows 的要求,文件是需要有文件名的,虽然你也可以创建.file这样的文件,但是用户是难以自己输入这样的文件名。

    之外还有一些文件名是保留,不能创建这样的文件名

    CON, PRN, AUX, CLOCK$, NUL
    COM0, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9
    LPT0, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, and LPT9.

    尝试新建一个文本,然后把他文件名命名为上面的任意一个,基本windows会说不能把文件命名

    那么是不是把这些字符串拿出来判断?实际上微软已经做了这个了,因为在不同的系统,可能之后会添加新的字符串,所以最好不要自己写。

    可以使用微软给的函数System.IO.Path.GetInvalidFileNameChars ,下面的代码可以直接使用

            public static string MakeValidFileName(string text, string replacement = "_")
            {
                StringBuilder str=new StringBuilder();
                var invalidFileNameChars = System.IO.Path.GetInvalidFileNameChars();
                foreach (var c in text)
                {
                    if (invalidFileNameChars.Contains(c))
                    {
                        str.Append(replacement??"");
                    }
                    else
                    {
                        str.Append(c);
                    }
                }
    
                return str.ToString();
            }
    

    如果确实需要显示文件名,请使用下面代码

    public static string GetSafeFilename(string arbitraryString)
    {
        var invalidChars = System.IO.Path.GetInvalidFileNameChars();
        var replaceIndex = arbitraryString.IndexOfAny(invalidChars, 0);
        if (replaceIndex == -1) return arbitraryString;
    
        var r = new StringBuilder();
        var i = 0;
    
        do
        {
            r.Append(arbitraryString, i, replaceIndex - i);
    
            switch (arbitraryString[replaceIndex])
            {
                case '"':
                    r.Append("''");
                    break;
                case '<':
                    r.Append('\u02c2'); // '˂' (modifier letter left arrowhead)
                    break;
                case '>':
                    r.Append('\u02c3'); // '˃' (modifier letter right arrowhead)
                    break;
                case '|':
                    r.Append('\u2223'); // '∣' (divides)
                    break;
                case ':':
                    r.Append('-');
                    break;
                case '*':
                    r.Append('\u2217'); // '∗' (asterisk operator)
                    break;
                case '\\':
                case '/':
                    r.Append('\u2044'); // '⁄' (fraction slash)
                    break;
                case '\0':
                case '\f':
                case '?':
                    break;
                case '\t':
                case '\n':
                case '\r':
                case '\v':
                    r.Append(' ');
                    break;
                default:
                    r.Append('_');
                    break;
            }
    
            i = replaceIndex + 1;
            replaceIndex = arbitraryString.IndexOfAny(invalidChars, i);
        } while (replaceIndex != -1);
    
        r.Append(arbitraryString, i, arbitraryString.Length - i);
    
        return r.ToString();
    }

    上面的代码是jnm2 大神写的

    参见:Information about the characters that you cannot use in site names, folder names, and file names in SharePoint

    c# - How to make a valid Windows filename from an arbitrary string

    我搭建了自己的博客 https://lindexi.gitee.io/ 欢迎大家访问,里面有很多新的博客。只有在我看到博客写成熟之后才会放在csdn或博客园,但是一旦发布了就不再更新

    如果在博客看到有任何不懂的,欢迎交流,我搭建了 dotnet 职业技术学院 欢迎大家加入

    知识共享许可协议
    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

    posted on 2018-08-15 00:45 NET未来之路 阅读(...) 评论(...) 编辑 收藏

    转载于:https://www.cnblogs.com/lonelyxmas/p/9479084.html

    展开全文
  • Windows 有一些字符是不能作为文件名,尝试重命名一个文件,例如输入英文/就可以看到 Windows 提示的不能作为文件名字符: 那么具体是包括哪些符号不能作为文件名,这些字符不能用来文件名和文件夹名。 ...
  • windows 程序设计

    2011-07-24 21:16:30
    Windows应用程序不能直接存取屏幕和打印机等图形显示设备硬件。相反,Windows提供一种图形程序语言(称作图形设备接口,或者GDI),使显示图形和格式化文字更容易。Windows虚拟化了显示硬件,使为Windows编写程序...
  •  从Windows最基本两类驱动程序编译、安装、调试入手讲解,非常容易上手,用实例详细讲解PCI、USB、虚拟串口、虚拟摄像头、SDIO等驱动程序开发,归纳了多种调试驱动程序高级技巧,如用WinDBG和VMWARE软件对...
  • 表示不显示@后面命令,在入侵过程中(例如使用批处理来格式化敌人硬盘)自然不能让对方看到你使用命令啦。 Sample:@echo off @echo Now initializing the program,please wait a minite... @format X: /q/u...
  • 尤其在这个黑客、破解、病毒、木马横行时代,如果作为安全软件开发者,同样不能期盼病毒作者提供可以阅读高级语言代码。 如果那些东西,也和C语言一样亲切易懂,那多么好啊!这样话,即便是Windows这样...
  • 扫描并删除包含嵌入空字符注册表项,标准注册表编辑工具不能删除这种注册表项。 RegJump 跳至 Regedit 中指定注册表路径。 RootkitRevealer 扫描系统以找出基于 Rootkit 恶意软件。 SDelete 安全地覆盖...
  •  此外,本部分还包括特殊一章,涉及如何巧妙地编写代码,来防止被其他受欢迎读者阅读。这与本书主旨完全相反,正所谓物极必反。  第14章 反病毒、木马实例开发 200  14.1 反病毒、木马设想 201  14.2 ...
  • 28、恢复备份文件:程序会产生备份文件,如果处理后的文件不能满意,则恢复到原始状态。 说明:程序产生备份文件是源文件名+“.bak”形式。 注意:用户可以自定义要不要备份文件,程序中如果出现多次处理都要...
  • 本大数运算包括加减乘除、取余、求幂,是用列表数据结构来实现大数运算类,理论上...压缩包中其他文件请放在一个工程下执行,可执行主函数在main.cpp中)(现阶段好像不能自由改积分,如果积分太高,可私聊本人)
  • Windows操作系统基本原理、NT驱动程序与WDM驱动程序构造、驱动程序中同步异步处理方法、驱 动程序中即插即用功能、驱动程序各种调试技巧等。同时,还针对流行PCI驱动程序、USB驱动程序 、虚拟串口驱动...
  • 纯c读写ini配置文件

    千次下载 热门讨论 2015-10-14 11:40:56
    纯c读写ini配置文件 用c/c++读写ini配置文件有不少第三方开源库,如iniparser、libini、... 3、不能提取所有section或key名称。 使用只需两个文件inirw.h、inirw.c,另有测试程序和工程文件,支持windows和linux。
  •  此外,本部分还包括特殊一章,涉及如何巧妙地编写代码,来防止被其他受欢迎读者阅读。这与本书主旨完全相反,正所谓物极必反。  第14章 反病毒、木马实例开发 200  14.1 反病毒、木马设想 201  14.2 ...
  •  此外,本部分还包括特殊一章,涉及如何巧妙地编写代码,来防止被其他受欢迎读者阅读。这与本书主旨完全相反,正所谓物极必反。  第14章 反病毒、木马实例开发 200  14.1 反病毒、木马设想 201  14.2 ...
  • 一 : 文件的安装卸载:A:RPM包,这种软件包就像Windows的EXE安装文件一样,各种文件已经编译好,并打了包,哪个文件该放到哪个文件夹,都指定好了,安装非常方便,在图形界面里你只需要双击就自动安装。...
  • 纯c读写ini配置文件 用c/c++读写ini配置文件有不少第三方开源库,如iniparser、libini、... 3、不能提取所有section或key名称。 使用只需两个文件inirw.h、inirw.c,另有测试程序和工程文件,支持windows和linux。
  • 该培训器同默认剖析器的不同之处在于,他们装载预先设置的符号数据库,因此扩大了Intellisense的范围。Visual Assist X只收集您工程中的头文件和对象信息,这些头文件和对象可以包含在系统、第三方库、MFC或ATL/...
  • 5.10 用作套接字调用参数的符号常量 50 5.11 小结 51 进一步的研究 51 习题 51 第6章 客户软件设计中的算法和问题 53 6.1 引言 53 6.2 学习算法而研究细节 53 6.3 客户体系结构 54 6.4 标识服务器的地址 ...
  • ① 文件名或文件夹名可以由1~256个西文字符或128个汉字(包括空格)组成,不能多于256个字符。 ② 文件名可以有扩展名,也可以没有。有些情况下系统会为文件自动添加扩展名。一般情况下,文件名与扩展名中间用符号...
  • Windows 中文件夹命名规则是:① 文件名或文件夹名可以由1~256个西文字符或128个汉字(包括空格)组成,不能多于256个字符。② 文件名可以有扩展名,也可以没有。有些情况下系统会为文件自动添加扩展名。一般情况下...
  • FlashPaper允许我们将任何类型可打印文档转换为SWF或PDF文档,可以通过各种平台来查看生成FlashPaper文档,包括文档格式、文档中图像、字体、特殊符号、源文档颜色,而不必理会这个文档原来是由哪个平台、...

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 214
精华内容 85
关键字:

windows文件不能包括的符号