- 締切済み
【C#】パス名で無効な文字
いつも教えて!gooにお世話になってます。 C#に関して質問です。 VisualC#2008を使用しています。 csvファイルを読み込むプログラムを作成しているところですが、つまづいています。 ボタンを押すとcsvファイルが読み込めるようにしたいのですが、 「パス名に無効な文字が含まれています」と表示され、強制終了してしまいます。 以下のようにパス名を指定しているのですが、何か無効な文字が含まれているのでしょうか? お手数ですが誰かご回答よろしくお願いします。 StreamReader sr = new StreamReader("C:\\Documents and Settings\admin\\My Documents\\Visual Studio 2008\algorithm\algorithm\algorithm\readfile\\shortfile.csv",Encoding.Default);
- kiyo061
- お礼率78% (15/19)
- C・C++・C#
- 回答数2
- ありがとう数2
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- Yune-Kichi
- ベストアンサー率74% (465/626)
パスを書く場合は,逐語的リテラル文字列を使うと便利です。 var sr = new StreamReader(@"C:\Documents and Settings\admin\My Documents\Visual Studio 2008\algorithm\algorithm\algorithm\readfile\shortfile.csv", false, Encoding.Default); 標準リテラル文字列を使うと,ANo.1さんが指摘されている通り,\がエスケープ文字列の始まりと見なされてしまう為です。
- samtomsan
- ベストアンサー率55% (1060/1897)
"\"が一つの所と二つの所がありますね。 二つにしてみてください。
お礼
実行できました!! アドバイスありがとうございました!
関連するQ&A
- ドライブレターとは?パスの文字数とは?
C:\Documents and Settings\user\My Documents\Excel\file.xls というファイル名があった場合、 ドライブレターというのは「C:」のことでしょうか? また、このパスの文字列を数える場合、 「C:」は抜いて数えるのでしょうか? 「\」も一文字として数えるのでしょうか? どうも初心者ですみませんがどなたか教えてください。
- ベストアンサー
- Windows XP
- フォルダ名とパス名の違うフォルダの作り方
例えば、C:\Documents and Settings\<ユーザー名>\My Documents\My Pictures の場合、一番最後のサブフォルダ名が、[My Pictures] とパス名と同様に適用されます。 これを上記の場合、[マイ ピクチャ] になります。 こんな感じに、フォルダ名とパス名の違うフォルダの作り方を教えて下さい。
- 締切済み
- Windows XP
- 【C#】StreamReaderクラスのエンコード
こんばんは。 .NetFramework1.1のStreamReaderクラスを使用して、csvファイルを読み込んでいるのですが、 エンコードでShift_JISを指定しても、"€"などの環境依存文字がそのまま取得されてしまいます。 Shift_JISに存在しない文字は文字化けして取得されるものだと思っていましたが、違うのでしょうか? DBの文字コードがShift_JISなのでこのままDBへ渡すとエラーになってしまい困っています。 ご教授下さい。宜しくお願いします。 -- ソース ---------------------------------------------- StreamReader sr = new StreamReader(path,Encoding.GetEncoding("Shift_JIS")); string str = sr.ReadLine();
- ベストアンサー
- C・C++・C#
- 無効なパスが含まれています、とのエラーがでます
web上の学習教材を利用しようとしているのですが、 授業をみようとすると音がでなくて、画面も動きません。 ウィンドウを閉じると「C:\Documents and Settings ・・・・\eStream Presto 3 Viewer Utilty\には 無効なパスが含まれています」とのエラーメッセージが でます。 もし、問題を解決する方法をご存知でしたら教えてください。 よろしくお願いいたします。 ※視聴にはFlash Player、MediaPlayer8以上が必要、とのことで、 それぞれインストールしています。
- 締切済み
- その他([技術者向] コンピューター)
- 結合した文字列をファイル名に使えない
Excel上に入力されているパス名とファイル名のデータを組み合わせて、 様々なファイルを開いたりコピーしたりするVBAのコードを作ろうとしています。 仮にシート上のA1セルに、C:\Documents and Settings\デスクトップ というパス名 A2セルに URIAGE.xls というファイル名が入力されていたとして、 A1の文字列データとB1の文字列データを結合する場合、 Sub FileSousa() Dim a As String Dim b As String Dim c As String a = Cells(1, "A").Value b = Cells(2, "A").Value c = Chr(34) & a & "\" & b & Chr(34) Range("A3") = c としてみると、確かにA3セルには、"C:\Documents and Settings\デスクトップ\URIAGE.xls" と出力され、文字列が結合されたことがわかるのですが、その変数cのデータを使って Workbooks.Open Filename:=c として、そのファイルを開こうとすると、ファイル名が見つからないとしてエラーになります。 ファイルはデスクトップ上の確かにその名前で存在しており、直接 Workbooks.Open Filename:="C:\Documents and Settings\デスクトップ\URIAGE.xls" とすると開きます。 " を Chr(34)によって入力したのがいけないのでしょうか、 Workbooks.Open Filename:=××× には、変数を置いてはいけないのでしょうか。 そもそも文字列の結合は、"あ" & "い" → "あい" となるのが基本だと思うのですが、 a="あ"、b="い"、c=a&b → c="あい"として結合した変数cについては、ファイル操作上のファイル名の設定項目として使えないのでしょうか。
- ベストアンサー
- Visual Basic
- ファイル読み取り(C#)
C#でテキストファイルを開くとき System.IO.StreamReader dates = newSystem.IO.StreamReader("dates.txt"); としてもファイルが見つからなくてエラーが出るんですが、どうしてでしょう? ファイル名をフルパス名にしても同じです。
- 締切済み
- その他(プログラミング・開発)
- アプリケーションのあるファイル名を取得
VBプログラミングをしているのですが、 その本体がある場所のファイル名を取得したいのですが、なにかよい方法はあるでしょうか? たとえば 本体.exeまでのフルパスが C:\Documents and Settings\Administrator\My Documents\ファイルA\本体.exe としたら C:\Documents and Settings\Administrator\My Documents\ファイルA までを取得したいのです。 世ろ紙お願いいたします。
- ベストアンサー
- Visual Basic
- デスクトップ上のファイルへのパスを教えてください。
デスクトップ上にあるファイルへのパスはWindows XPとWindows 7の場合は以下のようになっていますが、Windows 8の場合はどのようになるのでしょうか。Windows 7と同様と考えてよろしいでしょうか。 ○Windows XP C:\Documents and Settings\ユーザー名\デスクトップ\ファイル名.拡張子 ○Windows 7 C:\Users\ユーザー名\Desktop\ファイル名.拡張子
- ベストアンサー
- Windows 8
- temp内ファイルを削除するプログラムを組みたい
windows内のTEMPフォルダ内にあるファイルならばパスがわかっているので指定すれば削除プログラムを組めます。 が、profileのtemp内やcookies内のファイルになるとprofile名によるのですんなりとは無理です。 VB、C等(Exeファイル)では会社がOK出さないので、batファイルかvbsファイル(混合OK)で組みたいです。 profileですが、10桁の社員コードで出来ています。 例:社長=0000000001。専務=0000000002。 C:\Documents and Settings\0000000001\Cookies C:\Documents and Settings\0000000001\Local Settings\Temp profileがどんな数値(管理者はadminなのでadmin内も消したい)でもCooliesとtemp内ファイルを消したいです。 どのように組めばできますでしょうか? お知恵をお貸しください。
- ベストアンサー
- その他(プログラミング・開発)
- windows2000でDocument and setting フォルダがの中身がユーザー名と不一致
windows2000 sp2 を使っています。 先週、Windows2000をAdministrator権限があるユーザ(仮に、”admin_user” とする)で起動時にログインしたところ デスクトップやMyDocumentの中身が空っぽになっていました。 データがすべて消えたのかと思ったのですが。 c:\document and settings\admin_user の中には前回の起動までに保存したデータがすべてありました。 しかし、デスクトップには何もでません。 さらに、よくみてみると c:\document and settings\admin_user.MACHINE (→最後に.MACHINE というのが付け加えられたフォルダを発見) というフォルダができていて、どうやら、起動したあとはc:\document and settings\admin_user.MACHINE というフォルダの設定を読み込んでいるようです。 これでは困るので、別のAdministrator権限でログインしなおし c:\document and settings\admin_user.MACHINE のフォルダを削除したあと、admin_user でログインしたのですがやはり、c:\document and settings\admin_user.MACHINE のフォルダが勝手につくられてしまい、どうにもなりません。 困ったので、c:\document and settings\admin_user(→本来の設定が入っているフォルダ)をc:\document and settings\admin_user.MACHINE という名前に変更して起動すると、設定やデスクトップ、マイドキュメントなどはもどったのですが、LHASAなどの解凍ソフトでファイルを解凍したときに、c:\document and settings\admin_user のディレクトリにでてきてしまい。非常に使用困難な状態となっています。 原因や復旧方法がわかりません。 回答お願いします。
- ベストアンサー
- Windows NT・2000
お礼
\が1つのところを\\にすることで実行できました♪ ご指導ありがとうございました!!