4

好奇心だけで、

System::IO::Directory::GetDirectories("c:")の代わりに使用した問題がありSystem::IO::Directory::GetDirectories("c:\\")ました。

からディレクトリを取得することになりました"C:\Windows\System32"。他のドライブでバックスラッシュを使用しなかった場合、存在を知らなかったディレクトリになってしまいました。

なぜこれが起こっているのか誰か教えてもらえますか?パターンはありますか?いつ使用されますか?

4

1 に答える 1

4

パスの先頭 (またはドライブ文字の後) のバックスラッシュを省略すると、パスは現在のディレクトリからの相対パスと見なされます。メソッドで現在のディレクトリの値を取得し、メソッドで変更できます。System::IO::Directory::GetCurrentDirectory()System::IO::Directory::SetCurrentDirectory(path)

明確にするために、これを考慮してください。現在のディレクトリがC:\Windowsの場合、パスC:test.txtは と同等C:\Windows\test.txtです。

GetDirectoriesメソッドは、指定されたパス内のすべてのディレクトリを返します。隠しディレクトリやシステム ディレクトリ (通常は Windows エクスプローラーには表示されません) も含まれます。だから私はあなたがのような他のドライブのシステムディレクトリについて話していると思いSystem Volume Informationます$RECYCLE.BIN.

Windows シェル (cmd.exe) では、ドライブごとに個別の現在のディレクトリを作成できることに注意してください。実行すると:

C:\Windows\System32> cd d:\Temp
C:\Windows\System32> dir c:

の内容を取得し、C:\Windows\System32実行すると次のようになります。

C:\Windows\System32> dir d:

あなたはの内容を取得しますD:\Temp

于 2013-05-11T12:13:58.813 に答える