在任何平台上都带有“ /”的Directory.GetFiles

时间:2019-01-05 17:41:02

标签: c# path-separator

我正在尝试使用'/'Directory.GetFilesDirectory.GetDirectories字符获取路径,但每次产生一个字符串时都要替换掉该字符串。我只是简单地要求librairie使用'/'作为目录分隔符,即使我有一些Macro告诉他在特定的OS上使用AltSeperator。

2 个答案:

答案 0 :(得分:3)

不幸的是,这似乎是不可能的。

Path.DirectorySeparatorCharPath.AltDirectorySeparatorChar取决于您的应用运行的操作系统,并且是只读的。

According to the docs DirectorySeparatorChar在Windows上是\,在其他任何地方都是/Path.AltDirectorySeparatorChar(当前)始终是/

答案 1 :(得分:0)

一般技术:

import geopandas as gpd

gdf = gpd.read_file('cb_2017_us_nation_20m/cb_2017_us_nation_20m.shp')

AFFGEOID    GEOID   NAME    geometry
0100000US   US  United States   (POLYGON ((-136.563223 58.035052, -136.538708 ...

如果您的所有路径都来自真实系统,则此更简单的形式将起作用,但是如果任何路径均来自其他系统,则不会,因为您可能会被string MyPathCombine(string basename, string filename) { int idx = basename.Length; if (idx == 0) return filename; if (basename[idx - 1] == '/') --idx; return filename; } IEnumerable<string> GetFilesSlash(string dirname) => Directory.GetFiles(dirname.Replace('/', Path.DirectorySeparatorCharacter)).Select((p) => MyPathCombine(dirname, Path.GetFileName(p)); 字符所毒害。但这并不是唯一的危险。从这里开始颠簸。

\