相关疑难解决方法(0)

如何从路径和文件名中删除非法字符?

我需要一种强大而简单的方法来从简单的字符串中删除非法路径和文件字符.我使用了下面的代码,但它似乎没有做任何事情,我错过了什么?

using System;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string illegal = "\"M<>\"\\a/ry/ h**ad:>> a\\/:*?\"<>| li*tt|le|| la\"mb.?";

            illegal = illegal.Trim(Path.GetInvalidFileNameChars());
            illegal = illegal.Trim(Path.GetInvalidPathChars());

            Console.WriteLine(illegal);
            Console.ReadLine();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# string directory path

423
推荐指数
17
解决办法
41万
查看次数

将字符串转换为有效的文件名?

我有一个字符串,我想用作文件名,所以我想删除文件名中不允许使用Python的所有字符.

我宁愿比其他方面更严格,所以让我说我只想保留字母,数字和一小部分其他字符"_-.() ".什么是最优雅的解决方案?

文件名需要在多个操作系统(Windows,Linux和Mac OS)上有效 - 它是我的库中的MP3文件,歌曲标题为文件名,并在3台机器之间共享和备份.

python filenames sanitize slug

269
推荐指数
19
解决办法
15万
查看次数

在C#中检查文件名是*可能*有效(不是它存在)

System.IO命名空间中是否有一个检查文件名有效性的方法?

例如,C:\foo\bar将验证,:"~-*不会

或者有点棘手,X:\foo\bar会验证系统上是否有X:驱动器,否则不会.

我想我自己可以编写这样的方法,但我对内置的方法更感兴趣.

c# validation file

122
推荐指数
6
解决办法
11万
查看次数

检查路径是否有效

我只是想知道:我正在寻找一种方法来验证给定路径是否有效. (注意:我不想检查文件是否存在!我只想证明路径的有效性 - 所以如果文件可能存在于该位置).

问题是,我在.Net API中找不到任何东西.由于Windows支持的许多格式和位置,我宁愿使用MS-native.

由于该功能应该能够检查:

  • 相对路径(./)
  • 绝对路径(c:\ tmp)
  • UNC-Pathes(\ some-pc\c $)
  • NTFS限制,如完整路径1024个字符 - 如果我没有错误超过路径将使许多内部Windows功能无法访问文件.用Explorer重命名它仍然有效
  • 卷GUID路径:"\?\ Volume {GUID}\somefile.foo

有没有人有这样的功能?

.net c# winapi path

101
推荐指数
6
解决办法
12万
查看次数

有没有办法在c#中使字符串文件路径安全?

我的程序将从互联网上获取任意字符串并将其用于文件名.有没有一种简单的方法从这些字符串中删除坏字符或我是否需要为此编写自定义函数?

.net c# string filepath

84
推荐指数
10
解决办法
6万
查看次数

检查字符串是否是有效的Windows目录(文件夹)路径

我试图确定用户输入的字符串是否有效表示文件夹的路径.有效,我的意思是格式正确.

在我的应用程序中,该文件夹代表安装目标.提供的文件夹路径有效的,我想,以确定是否该文件夹存在,并创建它,如果它没有.

我目前正在使用IO.Directory.Exists( String path ).我发现这很好用,除非用户没有正确格式化字符串.发生这种情况时,此方法将返回false,表示该文件夹不存在.但这是一个问题,因为我之后将无法创建该文件夹.

从我的谷歌搜索我发现一个建议使用正则表达式来检查格式是否正确.我没有正则表达式的经验,我想知道这是否是一种可行的方法.这是我发现的:

Regex r = new Regex( @"^(([a-zA-Z]\:)|(\\))(\\{1}|((\\{1})[^\\]([^/:*?<>""|]*))+)$" );
return r.IsMatch( path );
Run Code Online (Sandbox Code Playgroud)

将正则表达式测试结合起来Directory.Exists(),给我一个足够好的方法来检查路径是否有效以及它是否存在?我知道这会因操作系统和其他因素而异,但该程序仅针对Windows用户.

c# windows filesystems directory validation

76
推荐指数
7
解决办法
11万
查看次数

检查任意String是否为有效文件名的最简单方法

在我的应用程序中,用户可以输入文件名.在处理之前,我想检查输入字符串是否是Windows Vista上的有效文件名.

这是最简单的方法吗?

通过有效我正在努力合法和不存在

.net c# file

71
推荐指数
3
解决办法
5万
查看次数

通过C#确定字符串是否是有效的文件路径

我想知道如何确定字符串是否是有效的文件路径.

文件路径可能存在也可能存在.

.net c# filesystems validation path

44
推荐指数
4
解决办法
7万
查看次数

检查字符串是否是Qt的有效文件名

有没有办法Qt 4.6检查给定的QString是当前操作系统上的有效文件名(或目录名)?我想检查名称是否有效,而不是文件存在.

例子:

// Some valid names
test
under_score
.dotted-name

// Some specific names
colon:name // valid under UNIX OSes, but not on Windows
what? // valid under UNIX OSes, but still not on Windows
Run Code Online (Sandbox Code Playgroud)

我怎么做到这一点?有一些Qt内置功能吗?

我想避免创建一个空文件,但如果没有其他可靠的方法,我仍然希望看到如何以"干净"的方式做到这一点.

非常感谢.

c++ filesystems validation qt

19
推荐指数
2
解决办法
2万
查看次数

Directory.GetFiles找到不存在的文件

我只是偶然发现了这些GetFiles方法的无证行为System.IO.Directory.

每当searchPattern传递给方法的参数包含保留的Windows设备名称(例如"nul.*"或)时"aux.bmp",该方法返回一个包含不存在的文件名称的数组,如C:\Users\ft1\nulD:\aux等.

我想知道那些设备名称是否具有特殊含义的上下文,如"." 或"..",或者如果这只是一种错误.无论如何,这看起来仍然很奇怪.例如,C#中的这段代码片段:

string[] fileNames = Directory.GetFiles(@"C:\D:\..\..\...\", "con.txt");
foreach (string fileName in fileNames) Console.WriteLine(fileName);
Run Code Online (Sandbox Code Playgroud)

版画

C:\D:\..\..\...\con
Run Code Online (Sandbox Code Playgroud)

有线索吗?

.net c# windows file getfiles

19
推荐指数
2
解决办法
937
查看次数

标签 统计

c# ×8

.net ×5

validation ×4

file ×3

filesystems ×3

path ×3

directory ×2

string ×2

windows ×2

c++ ×1

filenames ×1

filepath ×1

getfiles ×1

python ×1

qt ×1

sanitize ×1

slug ×1

winapi ×1