标签: path

将文件路径转换为文件URI?

.NET Framework是否有任何方法将路径(例如"C:\whatever.txt")转换为文件URI(例如"file:///C:/whatever.txt")?

的System.Uri类有反向(从文件URI以绝对路径),但没有就我可以找到转换为文件URI.

此外,这不是 ASP.NET应用程序.

.net c# uri path

191
推荐指数
5
解决办法
18万
查看次数

从包含文件名的路径获取没有文件名的完整路径

有没有内置的东西System.IO.Path只给我文件路径?

例如,如果我有 string

@ "C:\网络服务器\ PUBLIC\myCompany的\ CONFIGS\promo.xml"

是否有任何BCL方法可以给我

"C:\网络服务器\ PUBLIC\myCompany的\ CONFIGS \"?

c# file path

185
推荐指数
5
解决办法
21万
查看次数

如何在Python中获取当前执行文件的路径?

这似乎是一个新手问题,但事实并非如此.一些常见的方法并不适用于所有情况:

sys.argv中[0]

这意味着使用path = os.path.abspath(os.path.dirname(sys.argv[0])),但如果您从另一个目录中的另一个Python脚本运行,这不起作用,这可能发生在现实生活中.

__文件__

这意味着使用path = os.path.abspath(os.path.dirname(__file__)),但我发现这不起作用:

  • py2exe没有__file__属性,但有一个解决方法
  • 从IDLE运行时execute()没有__file__属性
  • OS X 10.6我得到的地方 NameError: global name '__file__' is not defined

回答不完整的相关问题:

我正在寻找一个通用的解决方案,一个适用于所有上述用例的解决方案.

更新

这是测试用例的结果:

输出python a.py(在Windows上)

a.py: __file__= a.py
a.py: os.getcwd()= C:\zzz

b.py: sys.argv[0]= a.py
b.py: __file__= a.py
b.py: os.getcwd()= C:\zzz
Run Code Online (Sandbox Code Playgroud)

a.py

#! /usr/bin/env python
import os, sys

print "a.py: sys.argv[0]=", sys.argv[0]
print "a.py: __file__=", __file__
print …
Run Code Online (Sandbox Code Playgroud)

python directory path

183
推荐指数
8
解决办法
12万
查看次数

在Python中使用代码存储库时如何引用资源的相对路径

我们正在使用一个代码存储库,它部署在Windows和Linux上 - 有时在不同的目录上.项目中的一个模块应该如何引用项目中的一个非Python资源(CSV文件等)?

如果我们做类似的事情:

thefile=open('test.csv')
Run Code Online (Sandbox Code Playgroud)

要么:

thefile=open('../somedirectory/test.csv')
Run Code Online (Sandbox Code Playgroud)

仅当脚本从一个特定目录或目录的子集运行时,它才会起作用.

我想做的是:

path=getBasePathOfProject()+'/somedirectory/test.csv'
thefile=open(path)
Run Code Online (Sandbox Code Playgroud)

这是正确的方法吗?可能吗?

python path relative-path

179
推荐指数
5
解决办法
17万
查看次数

从路径获取文件夹名称

string path = "C:/folder1/folder2/file.txt";
Run Code Online (Sandbox Code Playgroud)

我可以使用哪些对象或方法来获得结果folder2

c# filesystems path

169
推荐指数
7
解决办法
22万
查看次数

命令提示符 - 如何仅为执行的批处理文件添加设置路径?

基本上,我知道我可以通过我的控制面板并修改路径变量.但是,我想知道是否有办法通过批量编程包含一个临时路径?这样它只在批处理文件执行期间使用.我不想让人们进入并修改他们的路径变量只是为了使用我的批处理文件.

command path batch-file command-prompt

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

如何获取正在执行的Perl脚本的完整路径?

我有Perl脚本,需要在执行期间确定脚本的完整路径和文件名.我发现,根据你调用脚本的方式$0不同而有时包含fullpath+filename,有时只是filename.因为工作目录也可以变化,所以我想不出可靠地获取fullpath+filename脚本的方法.

有人有解决方案吗?

perl location path

164
推荐指数
9
解决办法
18万
查看次数

162
推荐指数
7
解决办法
14万
查看次数

C#清理文件名

我最近一直在将各种位置的MP3转移到存储库中.我一直使用ID3标签构建新的文件名(谢谢,TagLib-Sharp!),我注意到我得到了一个System.NotSupportedException:

"不支持给定路径的格式."

这是通过产生任一File.Copy()Directory.CreateDirectory().

没过多久就意识到我的文件名需要消毒.所以我做了一件显而易见的事:

public static string SanitizePath_(string path, char replaceChar)
{
    string dir = Path.GetDirectoryName(path);
    foreach (char c in Path.GetInvalidPathChars())
        dir = dir.Replace(c, replaceChar);

    string name = Path.GetFileName(path);
    foreach (char c in Path.GetInvalidFileNameChars())
        name = name.Replace(c, replaceChar);

    return dir + name;
}
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,我继续得到例外.原来,':'不在集合中Path.GetInvalidPathChars(),因为它在路径根中有效.我认为这是有道理的 - 但这必须是一个非常普遍的问题.有没有人有一些消毒路径的短代码?最彻底的我已经想到了这一点,但感觉它可能是矫枉过正.

    // replaces invalid characters with replaceChar
    public static string SanitizePath(string path, char replaceChar)
    {
        // construct a list of characters that can't show up in filenames. …
Run Code Online (Sandbox Code Playgroud)

c# validation invalid-characters path sanitize

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

如何获取Java JAR文件中的资源路径

我正试图找到资源的路径,但我没有运气.

这有效(在IDE和JAR中)但这样我无法获得文件的路径,只有文件内容:

ClassLoader classLoader = getClass().getClassLoader();
PrintInputStream(classLoader.getResourceAsStream("config/netclient.p"));
Run Code Online (Sandbox Code Playgroud)

如果我这样做:

ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource("config/netclient.p").getFile());
Run Code Online (Sandbox Code Playgroud)

结果是: java.io.FileNotFoundException: file:/path/to/jarfile/bot.jar!/config/netclient.p (No such file or directory)

有没有办法获得资源文件的路径?

java resources path

158
推荐指数
8
解决办法
28万
查看次数