我有一个应用程序向VB论坛软件发送POST请求并记录某人(没有设置cookie或任何东西).
一旦用户登录,我创建一个在其本地计算机上创建路径的变量.
C:\ tempfolder \日\用户名
问题是一些用户名正在抛出"非法字符"异常.例如,如果我的用户名是,mas|fenix它会抛出异常..
Path.Combine( _
Environment.GetFolderPath(System.Environment.SpecialFolder.CommonApplicationData), _
DateTime.Now.ToString("ddMMyyhhmm") + "-" + form1.username)
Run Code Online (Sandbox Code Playgroud)
我不想从字符串中删除它,但是在服务器上通过FTP创建了带有用户名的文件夹.这导致了我的第二个问题.如果我在服务器上创建一个文件夹,我可以留下"非法字符"吗?我只是问这个,因为服务器是基于Linux的,我不确定Linux是否接受它.
编辑:似乎URL编码不是我想要的..这是我想要做的:
old username = mas|fenix
new username = mas%xxfenix
Run Code Online (Sandbox Code Playgroud)
其中%xx是ASCII值或任何其他可以轻松识别字符的值.
我知道/在Linux中是非法的,以下在Windows中是非法的(我认为) * . " / \ [ ] : ; | , *
我还缺少什么?
但是,我需要一个全面的指南,并且需要考虑双字节字符.链接到外部资源对我来说没问题.
我需要首先使用可能包含禁用字符的名称在文件系统上创建一个目录,所以我打算用下划线替换这些字符.然后我需要将此目录及其内容写入zip文件(使用Java),因此有关zip目录名称的任何其他建议将不胜感激.
我想在我的应用程序中包含批处理文件重命名功能.用户可以键入目标文件名模式和(在替换模式中的一些通配符之后)我需要检查它是否是Windows下的合法文件名.我试过使用正则表达式,[a-zA-Z0-9_]+但它不包括来自各种语言的许多国家特定字符(例如变音符号等).做这种检查的最佳方法是什么?
在.NET中是否有任何标准化/图书馆/测试方式来获取任意字符串并以一种表示有效文件名的方式对其进行修改?
滚动我自己的char-replace功能很容易,但我想要一些更强大和更新的东西.
我正在编写一个C#程序,它从文件中读取某些标记,并根据标记值创建目录结构.
现在这些标签中可能有任何内容,
如果标签名称不适合目录名称,我必须通过用适当的任何东西替换这些字符来使其适合.这样创建目录就不会失败.我正在使用以下代码,但我意识到这还不够..
path = path.replace("/","-");
path = path.replace("\\","-");
Run Code Online (Sandbox Code Playgroud)
请告知最好的方法是什么..
谢谢,
我有一个string存储文件名并用于SaveFileDialog.在将文件名分配给FileName属性之前,我需要确保文件名有效(例如,不包含斜杠)SaveFileDialog.我的问题是:在分配文件名之前,是否有快速确保文件名有效的方法?
例:
string fileName = fileNameTextBox.Text;
//Some code here to check validity of fileName
if(fileNameIsValid)
{
saveFileDialog.FileName = fileName;
}
Run Code Online (Sandbox Code Playgroud)