私は次のようなC#プログラムを持っています。しかしそれは失敗する。 保護レベルのため 'System.IO.FileSystemInfo.FullPath'にアクセスできません。 フルパスに青で下線が引かれています。"C:System.IO.FileSystemInfo.FullPath 'の保護レベルが" C#のエラーのためアクセスできません。
protected void Main(string[] args)
{
DirectoryInfo parent = new DirectoryInfo(@"C:\Users\dell\Desktop\rename");
foreach (DirectoryInfo child in parent.GetDirectories())
{
string newName = child.FullPath.Replace('_', '-');
if (newName != child.FullPath)
{
child.MoveTo(newName);
}
}
}
あなたはおそらくse FullNameではなくFullPath。 FullPathは保護されたフィールドです。この方法で使用するようには設計されていません。アクセス修飾子の説明については、http://msdn.microsoft.com/en-us/library/ms173121.aspxを参照してください。 FileSystemInfoのフィールド/プロパティについては、次を参照してください。http://msdn.microsoft.com/en-us/library/system.io.filesysteminfo.aspx –
あなたの助けを感謝します:)私はFullNameに変更し、私は " public static "を" protected "に変更します。それは今働く。私はこの質問を閉じます。もう一度ありがとう:) – cethint
フィールドが保護されている場合は、私的な法律は常に見ることができます。 F12を押してください。 //要約: // System.IO.FileInfoおよびSystem.IO.DirectoryInfo //オブジェクトの基本クラスを提供します。 [シリアライズ] 〔のComVisible(真)] パブリック抽象クラスFileSystemInfo:MarshalByRefObjectを、ISerializable {//概要: //ディレクトリまたはファイルの完全修飾パスを表します。 保護された文字列FullPath。 –