1

以下は私のインストラクターから提供されたもので、友人のWin 7では問題なく動作します。仕事用のラップトップと個人用のデスクトップを試しましたが、次のエラーが表示され続けます

わかりません...ディレクトリへのアクセス許可をキックのために全員に変更するところまで行きました...それは彼のコピーペーストでは機能しますが、私のものでは機能しません。

「パス 'c:\Users\Wookie\My Documents\' の一部が見つかりませんでした。」

using System;
using System.IO;

class Program
{
 static void Main()
 {

 // This line of code gets the path to the My Documents Folder
 string environment = System.Environment.GetFolderPath
 (System.Environment.SpecialFolder.Personal) + "\\";

 Console.WriteLine("Enter a file name in My Documents: ");
 string input = Console.ReadLine();

 // concatenate the path to the file name
 string path = environment + input;

 // now we can use the full path to get the document
 StreamReader myFile = new StreamReader(path);
 int n = int.Parse(myFile.ReadLine());
 Console.WriteLine("read {0}", n);

 Console.ReadLine();
 }//End Main()
}//End class Program
4

2 に答える 2

3

プログラムの観点から、ファイルが実際に存在するかどうかを試してください。もちろん、yourfile.txt探しているファイルのファイル名に置き換えてください。

string path = Path.Combine(System.Environment.GetFolderPath
    (System.Environment.SpecialFolder.Personal), "yourfile.txt");
Console.WriteLine(File.Exists(path));

そうでない場合は、ファイル システム エクスプローラーで同じことを試してください。そうでない場合は、ファイル名を正しく入力しましたか? 一時的にハードコーディングしてみてください。上記のコードは、パスを結合する方法 (自動的に挿入されるため、スラッシュ ( \) がないことに注意してください) と、ファイル (または を使用してディレクトリ) が存在するかどうかを確認する方法も示していますDirectory.Exists()。これは、問題の場所を見つけるのに役立つ場合があります。

于 2012-07-29T22:42:14.783 に答える
2

Path.Combineパスを連結するための適切なコーディング習慣のためだけに使用します。Path.DirectorySeparatorChar代わりに「\」を使用することをお勧めします。

例:

 string path = Path.Combine(environment,  input);
于 2012-07-29T22:37:03.207 に答える