相关疑难解决方法(0)

Windows和Linux目录名中禁止使用哪些字符?

我知道/在Linux中是非法的,以下在Windows中是非法的(我认为) * . " / \ [ ] : ; | , *

我还缺少什么?

但是,我需要一个全面的指南,并且需要考虑双字节字符.链接到外部资源对我来说没问题.

我需要首先使用可能包含禁用字符的名称在文件系统上创建一个目录,所以我打算用下划线替换这些字符.然后我需要将此目录及其内容写入zip文件(使用Java),因此有关zip目录名称的任何其他建议将不胜感激.

linux windows directory zip filenames

315
推荐指数
10
解决办法
33万
查看次数

Android上的文件名中允许哪些字符?

Android上的文件名允许哪些特殊字符?

~!@#$%^&*()_+/\.,
Run Code Online (Sandbox Code Playgroud)

另外,我可以用Unicode名称保存文件吗?

filenames android illegal-characters

48
推荐指数
5
解决办法
4万
查看次数

我不允许在文件名中使用什么字符序列?

我在测试后发现linux允许除了/和null(\0)之外的文件名中的任何字符.那么我不应该在文件名中允许什么序列?我听说一个领导者-可能会混淆一些命令行程序,这对我来说无关紧要,但如果他们决定收集一堆文件并用一些GNU程序过滤它,它可能会打扰其他人.

建议我删除前导和尾随空格,我计划只是因为通常用户并不意味着有前导/尾随空格.

可能存在哪些有问题的序列以及我应该考虑不允许的序列?我也在考虑为了方便而不允许在Windows中使用非法字符.我想我可能不会在开头允许短划线(破折号是一个合法的窗口角色)

linux filenames command-line

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

在python中验证文件名

我正在用Python编写一个个人wiki风格的程序,它将文本文件存储在用户可配置的目录中.

该程序应该能够foo从用户获取一个字符串(例如)并创建一个文件名foo.txt.用户只能在wiki目录中创建文件,斜杠将创建一个子目录(例如,foo/bar变为(path-to-wiki)/foo/bar.txt).

检查输入是否尽可能安全的最佳方法是什么?我需要注意什么?我知道一些常见的陷阱是:

  • 目录遍历: ../
  • 空字节: \0

我意识到获取文件名的用户输入绝不是100%安全,但程序只能在本地运行,我只是想保护任何常见的错误/故障.

python filenames

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

chrome.downloads.download 中的文件名字符有问题

在开始下载时,在函数chrome.downloads.download的文件名参数中使用某些字符会导致“文件名无效”错误。我在文档中找不到任何信息,例如将 : 替换为 %3A 或 : ; 不起作用。

有问题的字符是:

: " ? ~ < > * |
Run Code Online (Sandbox Code Playgroud)

以下是您可以在具有下载权限的任何扩展程序的后台页面控制台中使用的示例。

chrome.downloads.download(
    {url: "http://i.imgur.com/3cWNMt3.webm",
     filename: "title:subtitle.webm"},
    function (downloadId) {
        if (downloadId===undefined)
            console.log(chrome.runtime.lastError);
        else
            console.log("Ok");
});
Run Code Online (Sandbox Code Playgroud)

有没有办法使用这些有问题的字符?

编辑:是否有 chrome.downloads.download 不支持的字符列表?

编辑2:换句话说。用户可以在 Chrome (Linux) 中手动下载文件,并在下载对话框中将其命名为:

title:subtitle.extension
Run Code Online (Sandbox Code Playgroud)

我想在我的扩展中做同样的事情。

该文件名只是一个示例,文件名根据网页和一些用户生成的规则自动生成。

javascript google-chrome-extension

7
推荐指数
1
解决办法
5198
查看次数

使用 Java 重命名文件后,在 linux 系统上或通过 Java 无法访问某些文件

我在使用 Java 的 linux 系统上读取(和写入)文件时遇到问题。我的应用程序抱怨它无法读取某些音频文件,当我查看系统时,我注意到ls -l这些文件也失败了,并且所有问题文件都是包含带引号等字符的文件,例如é,没有这些字符的文件是可以的。

[root@N1-0247 Georges Bizet- Suites from Carmen & L'arlésienne]# pwd
/mnt/disk1/share/import/all/MusicUnmatched/WAV/Yan Pascal Tortelier/Georges Bizet- Suites from Carmen & L'arlésienne
[root@N1-0247 Georges Bizet- Suites from Carmen & L'arlésienne]# ls -l
ls: cannot access 20 - L' Arlésienne, suite for orchestra No. 1, from the incidental music- Farandole.WAV: No such file or directory
ls: cannot access 19 - L' Arlésienne, suite for orchestra No. 1, from the incidental music- Minuetto.WAV: No such file …
Run Code Online (Sandbox Code Playgroud)

java linux locale utf-8

6
推荐指数
1
解决办法
180
查看次数

Linux 上的 .NET Core 命名管道问题(地址已在使用)

我正在研究使用命名管道来控制在 linux 下运行的 .net 核心应用程序的某些方面(例如:触发保存、关闭等)。

我正在尝试NamedPipeServerStream在应用程序内部创建一个,但是它总是失败并显示以下消息:(Address already in use我尝试了不同的名称,没有任何帮助)。

我还尝试使用创建临时管道/tmp/somepipename,但是这也失败并显示以下消息:The name of a pipe on this platform must only include characters valid in file names.

通过查看命名管道的 .NET Core 测试,这应该不是问题,因为它们也用于Path.GetTemporaryFileName()生成临时管道

这是用法:NamedPipeTestBase.cs

这是实现GetUniquePipeNamePipeTestBase.cs

以防万一,这是我正在使用的代码(一个班轮,非常简单):

_pipe = new NamedPipeServerStream("somepipename", PipeDirection.InOut,1);
Run Code Online (Sandbox Code Playgroud)

我做错了什么,或者命名管道还没有完全为 Linux 实现?

.net c# .net-core

5
推荐指数
1
解决办法
4583
查看次数

Linux仅使用时间/日期戳重命名文件

我有一个文件,我想将mv重命名为year_month_day_h:m:s - 最好的方法是什么?

我尝试了以下但它没有动态添加正确的标记(原始文件实际上在名称中有一个反斜杠):

mv getnw/myfilename.txt "%Y%m%d%H%M%S".txt mv getnw/myfilename.txt "%Y-%m%d%H%M%S".txt mv getnw/myfilename.txt %Y-%m%d%H%M%S.txt mv getnw/myfilename.txt "'date +%Y%m%d%H%M%S'.txt"

terminal file-rename

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

确保文件名在创建之前有效

我是以编程方式写入这样的文件:

file = new StreamWriter("C:\\Users\\me\\Desktop\\test\\sub\\" + post.title + ".txt");
file.Write(postString);
file.Close();
Run Code Online (Sandbox Code Playgroud)

但是,有时程序崩溃,因为文件名的非法字符在post.title.字符喜欢<".

如何转换post.title为安全文件名?

c# file-io file

2
推荐指数
1
解决办法
659
查看次数

如何在Linux中创建具有特殊字符的文件?

我正在使用该touch命令尝试创建一个带有名称的文件"\?$*'KwaMe'*$?\"(引号作为文件名的一部分包含在内).但是当我输入touch "\?$*'KwaMe'*$?\"终端时,它并没有给我我期望的结果.我该如何创建这个文件?

linux bash shell filenames special-characters

2
推荐指数
1
解决办法
7682
查看次数