2016-07-29 15 views
1

最新の作成済みフォルダに最新の.XMLファイルを配置しようとしています。私はそれが簡単な解決策だと思うが、私は初心者のために、それは私の髪を灰色に変える。DirectoryInfo経由で最新のファイルにフルパスを取得する方法

マイコード: dirinfo

string dir = runfrom + @"\results"; 
    string xml = "*.xml"; 
    DirectoryInfo newestdir = new DirectoryInfo(dir).GetDirectories().OrderByDescending(d => d.LastWriteTimeUtc).First(); 
    var dirInfo = new DirectoryInfo(newestdir.ToString()); 
    var file = (from f in dirInfo.GetFiles(xml) orderby f.LastWriteTime descending select f).First(); 

のみ、最新のディレクトリの名前が含まれているではなく、完全なパス。ディレクトリがパスなしで見つからないため、私は(もちろん)エラーになります。

+0

このdoesntのは、あなたがパスであるrunfromを持っているので、あなたがして...そのフォルダ内のファイル名であるnewestdirを得るので、runfrom + newestdir +ファイル、ように見えますか? directoryinfoオプションを見てみましょう。 – BugFinder

+0

_newestdir_は、ファイルではなく、フォルダです。文字列を作成すると、getfilesを使用することはできません。私はすでにそれを試しました – Mahobo

+0

ファイル名を使用する場合は........ directoryinfoを使用してnewestdir、またはrunfrom + newesdir +ファイルのフルネームをプルするオプションがあります。 – BugFinder

答えて

1

DirectoryInfo.FullNameを使用すると、完全なパスを取得できます。

フルネーム - ディレクトリまたはファイルのフルパスを取得します( FileSystemInfoから継承されます。)


をしかし、あなたはドンようです。完全なパスを取得する必要はありません - あなたはDirectoryInfoを使用することができますそのファイルを列挙するために使用します。あなたがしようとしたよう

DirectoryInfo newestdir = new DirectoryInfo(dir).GetDirectories().OrderByDescending(d => d.LastWriteTimeUtc).First(); 
var file = (from f in newestdir.GetFiles(xml) orderby f.LastWriteTime descending select f).First(); 
+0

これはまさに私がやりたかったことです。どうもありがとうございました! 文字列full = dir + @ "\" + newestdir.ToString()+ @ "\" + file.ToString();で完全な文字列を作成できます。 – Mahobo

関連する問題