System.IO.Path
にファイルパスだけを提供するものはありますか?
たとえば、string
がある場合
@ "c:\ webserver\public\myCompany\configs\promo.xml"、
私に与えるBCLメソッドはありますか
「c:\ webserver\public\myCompany\configs \」?
Path.GetDirectoryName()
...しかし、パスに渡すパスにはファイル名が含まれていることを知っておく必要があります。ファイル名かディレクトリ名かに関係なく、パスから最後のビットを削除するだけです(実際にはどちらなのかわかりません)。
最初にパスでFile.Exists()
および/またはDirectory.Exists()
をテストして、Path.GetDirectoryName
を呼び出す必要があるかどうかを確認することにより、最初に検証できます。
Console.WriteLine(Path.GetDirectoryName(@"C:\hello\my\dear\world.hm"));
Path.GetDirectoryName()
はディレクトリ名を返します。そのため、(末尾の逆ソリッド文字を使用して)必要なものについてはPath.GetDirectoryName(filePath) + Path.DirectorySeparatorChar
を呼び出すことができます。
string fileAndPath = @"c:\webserver\public\myCompany\configs\promo.xml";
string currentDirectory = Path.GetDirectoryName(fileAndPath);
string fullPathOnly = Path.GetFullPath(currentDirectory);
示されているように「GetParent()」を使用すると、うまく機能します。 必要に応じてエラーチェックを追加します。
var fn = openFileDialogSapTable.FileName;
var currentPath = Path.GetFullPath( fn );
currentPath = Directory.GetParent(currentPath).FullName;
私はこれを使用し、それはうまく機能します:
string[] filePaths = Directory.GetFiles(Path.GetDirectoryName(dialog.FileName));
foreach (string file in filePaths)
{
if (comboBox1.SelectedItem.ToString() == "")
{
if (file.Contains("c"))
{
comboBox2.Items.Add(Path.GetFileName(file));
}
}
}