たとえば/Users/smcho/filegen_from_directory/AIRPassthrough
から現在のディレクトリの最後の部分を取得する必要があり、AIRPassthrough
を取得する必要があります。
Pythonでは、このコードで取得できます。
import os.path
path = "/Users/smcho/filegen_from_directory/AIRPassthrough"
print os.path.split(path)[-1]
または
print os.path.basename(path)
C#で同じことを行うにはどうすればよいですか?
回答者の助けを借りて、必要なものを見つけました。
using System.Linq;
string fullPath = Path.GetFullPath(fullPath).TrimEnd(Path.DirectorySeparatorChar);
string projectName = fullPath.Split(Path.DirectorySeparatorChar).Last();
または
string fullPath = Path.GetFullPath(fullPath).TrimEnd(Path.DirectorySeparatorChar);
string projectName = Path.GetFileName(fullPath);
Path.GetFileName
を探しています。
パスが\
で終わる場合、これは機能しないことに注意してください。
あなたが試すことができます:
var path = @"/Users/smcho/filegen_from_directory/AIRPassthrough/";
var dirName = new DirectoryInfo(path).Name;
フォルダ名を取得する最も簡単な方法は、DirectoryInfoのインスタンスをパスで初期化することです。
string path = "/Users/smcho/filegen_from_directory/AIRPassthrough";
string result = new DirectoryInfo(path).Name;
これは、パスがディレクトリセパレーターの有無に関係なく、順方向または逆方向のセパレーターが使用されている場合に同じように機能します。
さて、正確に質問のタイトルに答えてください:-)
var lastPartOfCurrentDirectoryName =
Path.GetFileName(Environment.CurrentDirectory);
これは、あなたが持っているものに応じて、わずかに異なる答えです。ファイルのリストがあり、ファイルが存在する最後のディレクトリの名前を取得する必要がある場合、これを行うことができます。
string path = "/attachments/1828_clientid/2938_parentid/somefiles.docx";
string result = new DirectoryInfo(path).Parent.Name;
これは「2938_parentid」を返します
分割の呼び出しに '/'を使用するよりも、Path.DirectorySeparatorChar
を使用する方が適切です:
そのようです:
path.split(Path.DirectorySeparatorChar).Last()
var lastFolderName = Path.GetFileName(
path.TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar));
これは、パスにスラッシュ区切り文字またはバックスラッシュ区切り文字が含まれている場合に機能します。
これを試して:
String newString = "";
Sting oldString = "/Users/smcho/filegen_from_directory/AIRPassthrough";
int indexOfLastSlash = oldString.LastIndexOf('/', 0, oldString.length());
newString = oldString.subString(indexOfLastSlash, oldString.length());
コードはオフになっている可能性があります(テストしていません)が、アイデアは機能するはずです
以下のコードを試すことができます:
Path.GetFileName(userpath)
これは私と一緒に完璧に動作します:)
Path.GetFileName(path.TrimEnd('\\')