ファイルまでのパス文字列からの変換について

このQ&Aのポイント
  • JavaScriptからイメージファイルのパスを受け取り「\」の部分を「/」に変換後、exists()関数でそのファイルが存在するかを調べてからファイルを削除する処理を実装したが、exists()関数が「false」しか返ってこない。
  • HTML側で戻り値「imageFilePath」の中身を確認すると、パスの「\」の部分は「/」に変換されている。また、直接パスを指定するとexists()関数は「true」を返す。
  • 解決策は、imageFilePathを処理せずに直接パスを指定するか、バックスラッシュの代わりにスラッシュを使用してexists()関数を実行すること。
回答を見る
  • ベストアンサー

ファイルまでのパス文字列からの変換について

以下はJavaScriptからイメージファイルのパスを受け取り「\\」の部分を「/」に変換後 imageFile.exists()でそのファイルが存在するかを調べてからファイルを削除するものですが 結果がexists()の結果が「false」しか返ってきません。 しかしHTML側で戻り値「imageFilePath」の中身を見てみると「\\」の部分は「/」に変換されています。 また直接JavaScript側でremoveThumbnailImage()を呼び出す時に removeThumbnailImage("C:/Users/Admin/workspace/website/images/test.jpg")の様に直接パスを指定又はJava側でimageFilePath = "C:/Users/Admin/workspace/website/images/test.jpg"の様にするとexists()では「true」を返してきます。 どうすれば解決するでしょうか? public static String removeThumbnailImage(String imageFilePath){ //// 受け取ったパスの「\\」を「/」に変換するが「false」しか返ってこない //imageFilePath = imageFilePath.replaceAll("\\\\", "/"); ////以下の場合は「true」を返す(\\はバックスラッシュ2つ) //imageFilePath = "C:\\Users\\Admin\\workspace\\website\\images\\test.jpg"; //imageFilePath = "C:/Users/Admin/workspace/website/images/test.jpg"; //StringBuffer sb = new StringBuffer(); ////以下の処理でも結果は「false」 /*StringBuffer sb = new StringBuffer(); for(int i=0;i<imageFilePath.length();i++){ switch(imageFilePath.charAt(i)){ case '\\': sb.append("/"); break; default : sb.append(imageFilePath.charAt(i)); }//end switch }//end for*/ /////画像を保存したファイルまでのパスでFileオブジェクト生成 File imageFile = new File(sb.toString()); try{ ////イメージファイルが存在するか調べる if(imageFile.exists()){ ////イメージファイルを削除 //imageFile.delete(); return "true"; }else{ return imageFilePath; }//end if }catch(Exception e){ e.printStackTrace(); }//end try }

noname#186510
noname#186510
  • Java
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • salsberry
  • ベストアンサー率69% (495/711)
回答No.1

> //// 受け取ったパスの「\\」を「/」に変換するが「false」しか返ってこない > //imageFilePath = imageFilePath.replaceAll("\\\\", "/"); 元のimageFilePathの中には「\\」が入っているのですか? そういうことはあまりなさそうなので、実行するなら imageFilePath = imageFilePath.replaceAll("\\", "/"); ではないかと思います。 > File imageFile = new File(sb.toString()); 思ったような結果にならないときsbには何が入っているのですか? imageFile.exists()がfalseだったときに > return imageFilePath; を実行していますが、代わりに return imageFile.getPath(); を実行したら思った通りの文字列になっていますか?

関連するQ&A

  • 画像ファイルを削除出来ません(サーブレット)

    ImageIO.write()で作成した画像のパスでFileを生成し そのパスの画像を削除したいのですがうまくいきません。 .exists()は通ります。 コンソールでパスを確認しましたが問題ありませんでした。 しかしdelete()を実行しても削除される時と削除されない時があり 不安定な動作です。 例外は発生してません。 解決するにはどうすればいいのでしょうか? String userName = req.getParameter("userName"); HttpSession sessions = req.getSession(); StringBuffer imageFilePath = new StringBuffer(getServletContext().getRealPath("websitePrototype/spot/thumbnailImages")); imageFilePath.append((String)sessions.getAttribute(userName + "Image")); System.out.print(imageFilePath); /////画像を保存したファイルまでのパスでFileオブジェクト生成 File imageFile = new File(imageFilePath.toString()); try{ ////イメージファイルが存在するか調べる if(imageFile.exists()){ ////イメージファイルを削除 imageFile.delete();

    • ベストアンサー
    • Java
  • 他のファイルからリンクしてるテーブルリンクのパスを

    アクセスです。 Sub Sample() Debug.Print CurrentDb.TableDefs("T_TEST").Connect End Sub このコードでアクセスの他のファイルからリンクしてるテーブルリンクのパスを取得できますが VBAでパスを変更するにはどうすれば良いでしょうか? 例えば ;DATABASE=C:\Users\\TEST1.accdb を ;DATABASE=C:\Users\\TEST2.accdb に変更するコードが知りたいです。

  • PHPの画像表示パス

    お世話になります。 PHPでブラウザに画像を表示するときのパスについて質問させていただきます。 以下のようなコードで、画像のフルパスを使って画像を表示させようとしていますが、画像が表示されません。(添付スクリーンショットの左側)。 このコードの 第1行をコメントアウトして、第2行の相対パスでやると、画像がちゃんと表示されます。(右側) これはどうしてなのでしょうか?詳しい方がいらっしゃいましたら、よろしくご教授ください。 ちなみに、このファイル自体のパスは C:\xampp\htdocs\PHP7-solutions\new-test.php です。 <?php $selectedImage = "C://xampp/htdocs/php7-solutions/images/kinkakuji.jpg"; //$selectedImage = "images/kinkakuji.jpg"; if (file_exists($selectedImage) && is_readable($selectedImage)) { // && is_readable($selectedImage) $imageSize = getimagesize($selectedImage); echo "<pre>"; print_r($imageSize); echo "</pre>"; echo "<img src='".$selectedImage."' alt='kinkakuji temple' ".$imageSize[3].">"; }else { echo "no such file<BR>"; }

    • ベストアンサー
    • PHP
  • 同サーバー内のファイルの存在確認ができません

    ※説明の為相対パスで書かせていただきます。 ↓本ファイルの設置ディレクトリ /usr/local/apache/htdocs/admin/check.php $img="/home/monky/www/monky.jp/img/1.jpg"; $chk=(file_exists($img))?TRUE:FALSE; ↑とするとエラーがでました。 このPHPとIMGファイルは以下のように、 /usr/local/apache/htdocs/admin/check.php /home/monky/www/monky.jp/img/1.jpg 階層が全然違いますが、同サーバー内です。 fopenやfile_get_contentsなどURLで指定すれば存在確認ができたのですが、動作が遅すぎなので、なんとかfile_existsで行いたいです。 この場合はどうすればうまくいくのでしょうか??

    • ベストアンサー
    • PHP
  • アクセス2000のレポートでイメージを表示させたいのですが

    アクセス2000でデータベースを作成しています。レポートについて分からないことがあるので教えてください。 ・ImageFileというフィールドにイメージファイルのフルパスを入力しておき、フォーム上のPictureを配置し、下記のようなコードを記述して、Pictureに、イメージファイルを読み込んで表示させています。 Private Sub Form_Current() If IsNull(Me.ImageFile) Then   Me.イメージ.Picture = "d:\nonimage.jpg" Else: Me.イメージ.Picture = Me![ImageFile] End If End Sub ・同じような方法でレポートでイメージを印刷させることは出来ないでしょうか?  尚、ImageFileはレコード毎に異なるものを使用しています。

  • html内のパスの記述で、途中で遡る

    webページにおけるhtml内のパスの記述に関して質問させて頂きます。 http://okwave.jp/というサイトに、 http://okwave.jp/lv1/lv2/lv3/index.html というファイルがあったとします。 このindex.htmlファイルから、 http://okwave.jp/lv1/lv2/images/lv3.jpg の画像を参照したいとします。 この場合に何かしらの都合で、 http://okwave.jp/lv1/lv2/lv3/../images/lv3.jpg ↑このようにパスを途中から遡って記述するのは、問題(規格に反する、SEO上不利等)があることなのでしょうか? ブラウザでは、一見問題なくリンクしているように見えます。 詳しい方、いらっしゃいましたら、ご教示願います。

    • 締切済み
    • SEO
  • [asp/vbs]FileExistsのパスの指定方法について教えて下

    [asp/vbs]FileExistsのパスの指定方法について教えて下さい。 下記のような記述をした場合、インターネット上にファイルは存在しているのに 「無し」と判断されてしまいます。("ファイルがありません"と表示される) 表示されるという事はasp自体は動いているのでしょうが、肝心のパスの設定が わからない状態です。 <%@ Language=VBScript %> -------中略------- <% Set objFso = Server.CreateObject("Scripting.FileSystemObject") If objFso.FileExists("image/test.jpg") Then Response.Write "ファイルが存在します" End If Response.Write "ファイルがありません" %> このaspファイルが置かれているディレクトリ上にtest.jpgを置き、 If objFso.FileExists("test.jpg") Then と記述しても、やはり"ファイルがありません"と表示されてしまいます…。 また、フルパス(http://www~~test.jpg)と表示しても駄目でした。 おそらく根本的な問題だとは思うのですが、 どのように表記したら良いか、教えて頂けると助かります。

  • ファイルの取得について

    お世話になっております。 ただ今JSPにてファイルの存在チェックを行うものを作成しております。 localhost上では new File("test.txt").exists(); で”true”なのですが、 warファイルを作成後、SunOneに配備すると”false”になってしまいます。 test.txtは同じフォルダー上にあります。 String file_path = application.getRealPath("test.txt"); File test = new File(file_path); out.print(test.exists()); としても”false”になってしまいます。 どのように記述すれば”true”になるのでしょうか? お手数ですが、ご教授願います。

    • ベストアンサー
    • Java
  • macでのファイル場所指定

    macでのファイル場所指定 javaで指定したファイルやディレクトリを操作したいのですが、上手くいきません。 ディレクトリの場所をプロパティで確認したところ、 /Users/herobushi/Documents/workspace/test1/ にあることが分かったので String inputdirectory ="/Users/herobushi/Documents/workspace/test1/"; としたのですが、ディレクトリが見つからない、というエラーが出てしまします。 java上で指定する場合何か別の表記方法があるのでしょうか? 回答をよろしくお願いいたします。

    • ベストアンサー
    • Java
  • ファイルの移動コマンド

    linux初心者です。 以下のようなコマンドを打ちました。 mv -f *.jpg /images /test/img やりたいことはimagesフォルダ内の.jpgファイルを全てimgフォルダに移動させたいのです。 この場合、imagesフォルダごとimgフォルダに移動されました。 しかもエラーメッセージ mv: cannot stat `*.jpg': そのようなファイルやディレクトリはありません が表示されます。 色々と調べてみたのですが初心者なので、どうすればよいか困っています。

専門家に質問してみよう