-6

ファイルが存在するかどうかを確認する最良の方法を誰かに提案できますか? File.Exists私のために働いていません。

string abc = "me_label.deploy";
File.Exists(abc)

ファイルabcは からのものStreamreader.ReadLine();です。

フルパスも使用しました。プロジェクトにファイルを含めたくありません。プロジェクトに含めると、正常に機能します。

私のコード:

FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create("me@localhost/"; + ab);
//ab=newfolder/newfolder1
ftp.Credentials = new NetworkCredential(user, pass);
ftp.Method = WebRequestMethods.Ftp.ListDirectory;
StreamReader sr = new StreamReader(ftp.GetResponse().GetResponseStream());
StringBuilder result = new StringBuilder();
string abc = sr.ReadLine();
while (abc != null)
{
    result.Append(abc);
    //abc=file
    result.Append("\n");
    if (File.Exists(ab+abc))
    {
        //file
    }
} 
4

1 に答える 1

5

.NET の相対パスは、既定ではbin/Debugプロジェクトのサブディレクトリに対して相対的です。そのため、そのフォルダーにない限りme_label.deploy、プログラムはそれを見つけることができません。それを含めると、そのフォルダーにコピーされてから機能します。

ただし、代わりにパスを絶対にする必要があります。Pathクラスのメソッドを使用します。

string filename = "me_label.deploy";
string basePath = @"C:\My Documents\";
string absolutePath = Path.Combine(basePath, filename);
// C:\My Documents\me_label.deploy
Console.WriteLine(File.Exists(absolutePath));
于 2013-04-18T18:59:32.633 に答える