質問ですが、

'フォルダセット
Dim fbd As New FolderBrowserDialog
fbd.Description = "フォルダを指定して下さい。"
fbd.RootFolder = Environment.SpecialFolder.Desktop
fbd.SelectedPath = Environment.SpecialFolder.Desktop
'コピー
System.IO.File.Copy(fbd.SelectedPath & "\test.pak", System.Environment.GetFolderPath(System.Environment.SpecialFolder.ProgramFiles) & "\test.pak")

フォルダを選択した後、
そのフォルダ内の「test.pak」をコピーして、
プログラムファイルを取得して、取得した先の場所に保存したいのですが、
これをデバッグすると、怒られてしまいます。
"(C:\Program File\test.pak) の一部が見つかりませんでした"
という怒られ内容です。
ドコモ間違ってないのに、この様なエラーが出てしまうのですが
何処が悪いのでしょうか?どの様な改善をすれば良いでしょうか?

A 回答 (4件)

補足に貼り付けられているコードでは当然そうなります。


ShowDialog()の戻り値の意味を理解してください。
----------------------------------------------
Dim fbd As New FolderBrowserDialog
fbd.Description = "フォルダを指定して下さい。"
fbd.RootFolder = Environment.SpecialFolder.Desktop
If (fbd.ShowDialog() <> Windows.Forms.DialogResult.OK) Then
MsgBox("キャンセルされたよ")
Return
End If
MsgBox(fbd.SelectedPath)'選択されたフォルダの確認が目的なので実際は不要
System.IO.File.Copy(fbd.SelectedPath & "\test.txt", "c:\test\test1.txt", True)'ここでコピーを実行
----------------------------------------------
又は
----------------------------------------------
Dim fbd As New FolderBrowserDialog
fbd.Description = "フォルダを指定して下さい。"
fbd.RootFolder = Environment.SpecialFolder.Desktop
If (fbd.ShowDialog() = Windows.Forms.DialogResult.OK) Then
MsgBox(fbd.SelectedPath)'選択されたフォルダの確認が目的なので実際は不要
System.IO.File.Copy(fbd.SelectedPath & "\test.txt", "c:\test\test1.txt", True)'ここでコピーを実行
Else
MsgBox("キャンセルされたよ")
End If
----------------------------------------------
Copyの3番目の引数は、コピー先に同じファイル(test1.txt)がある時に上書きする指定です。
    • good
    • 0

フォルダ選択するダイアログが表示されていないためです。


fbd.ShowDialog()が必要。
fbd.SelectedPath には、ダイアログでOKを押した時に選択されたパスが設定されます。

こんな感じです
Dim fbd As New FolderBrowserDialog
fbd.Description = "フォルダを指定して下さい。"
fbd.RootFolder = Environment.SpecialFolder.Desktop
If (fbd.ShowDialog() <> Windows.Forms.DialogResult.OK) Then
MsgBox("キャンセルされたよ")
Return
End If

MsgBox(fbd.SelectedPath)

この回答への補足

ありがとうございます。
申し訳無いのですが、やはり同じ事をしても認識されません。
http://deai.mokuren.ne.jp/up/src/up0495.jpg

上記の様にわざと "test.txt"or"test1.txt"で作ってみましたが、
「キャンセルされたよ」しか返ってこない・・。
なぜなんでしょうか?

お手数おかけします・・。

補足日時:2009/05/19 23:52
    • good
    • 0

>fbd.SelectedPath & "\test.pak"


をPath.Combineを使ってパスを組立て、File.Existsで存在を確認してから
Copyするようにしてみては?

Dim sorcePath As String
Dim destPath As String

sorcePath = System.IO.Path.Combine(fbd.SelectedPath, "test.pak")
If Not System.IO.File.Exists(sorcePath) Then
  MessageBox.Show("ファイルがネーヨ")
End If

この回答への補足

ご回答有難うございます。
確実にそこにはファイルがあるので、存在確認は必要ありません。
一応内容を試してみましたが、同じ様なエラーがおきます。

一番問題にしているのが、
copyです。存在確認済なのに必ず
System.IO.File.Copy(fbd.SelectedPath & "\test.pak", (ここの文字がC:\)以外の記載だとパスが認識されない という事です))

恐れ入りますが、教えて下さい。><

補足日時:2009/05/19 23:21
    • good
    • 0

OSはWindows Vistaでしょうか?



Vistaである場合、ユーザアカウント制御(UAC)のため、
管理者権限で実行していないアプリケーションから
>System.Environment.SpecialFolder.ProgramFiles
のようなディレクトリを容易に変更できないようになっています。

本当にそこに置くべきか検討した方が良いでしょう。
一般的なアプリケーションではそのようなディレクトリにファイルを作ったりしませんし。

この回答への補足

補足です。

環境は
・WinXP SP3
だけです。

Dim fbd As New FolderBrowserDialog
fbd.Description = "フォルダを指定して下さい。"
fbd.RootFolder = Environment.SpecialFolder.Desktop
fbd.SelectedPath = Environment.SpecialFolder.Desktop

Dim Down As New FolderBrowserDialog
Down.Description = "保存するフォルダを指定して下さい。"
Down.RootFolder = Environment.SpecialFolder.Desktop
Down.SelectedPath = Environment.SpecialFolder.Desktop
'コピー
System.IO.File.Copy(fbd.SelectedPath & "\test.pak", Down.SelectedPath & "\test.pak")


この様に別でまた作って保存する場所を指定して、
そこに保存したいのですが、これだと質問内容と同じく
怒られてしまいます。
どうか教えて下さい。

補足日時:2009/05/19 13:50
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q復元ポイントの作成とイメージファイル等のバックアップとの違いについて

今晩は、宜しくお願いします。

復元ポイントの作成とイメージファイル等のバックアップとの違いについて教えて下さい。

Windowsで復元ポイントからシステムを復元させる方法があり、
また、イメージファイル等にバックアップをとり、復元させる方法もありますが
この両者はどのように違うのでしょうか。

復元ポイントの作成とは、その時点のシステムの設定等だけを保存しているという
ことでしょうか。

また、イメージファイル等のバックアップを作成するということは
システム設定と作成したファイル等もイメージファイルとして一括してバックアップ
されるのでしょうか。

イメージファイルの復元時に、作成したファイル等もイメージファイルから
復元されるのなら、同じ名前のファイルがあった場合には、
イメージファイル作成時の古い情報のファイルになってしまうのでしょうか。

以上、宜しくお願いします。

Aベストアンサー

【システムの復元】
Windowsが使用するシステムファイルのバックアップと復元。
ユーザーファイルには影響しない。
HDDの中に作成されるので、Windowsが起動しない環境では使用出来ない。

【システム修復ディスクの作成】
Windowsの起動時にF8を押下して起動するセーフモードから「コンピューターの修復」「システム回復オプション」を、外部記憶装置(CD、USBメモリなど)から起動出来るようにする。
Windows自体が起動しなくなった場合に、外部記憶装置から「システム回復オプション」が起動出来るようになる。修復されるのは、選択した項目により異なる。
WindowsREを利用。
https://msdn.microsoft.com/ja-jp/library/hh825173.aspx

【バックアップと復元】
システムのバックアップを作成し、ハードディスクなどが壊れた場合に備えパソコン内部のデータを全てバックアップ・復元出来る。
Windowsのインストールディスクや、システム修復ディスクから復元が可能。
システムもユーザーデータもバックアップを取った時点の状態に戻る。

【システムの復元】
Windowsが使用するシステムファイルのバックアップと復元。
ユーザーファイルには影響しない。
HDDの中に作成されるので、Windowsが起動しない環境では使用出来ない。

【システム修復ディスクの作成】
Windowsの起動時にF8を押下して起動するセーフモードから「コンピューターの修復」「システム回復オプション」を、外部記憶装置(CD、USBメモリなど)から起動出来るようにする。
Windows自体が起動しなくなった場合に、外部記憶装置から「システム回復オプション」が起動出来るようになる。...続きを読む

QFavoritesフォルダやDeskTopフォルダ等のSpecialFolderのパス

FavoritesフォルダやDeskTopフォルダ等のパスを取得する良い方法ってありますか?OSに依存しないで取得したい為、フルパスというのは無しです。

WSHでSpecialFoldersを利用する方法では可能ですが、セキュリティ対策上動かしていません。
GetSpecialFolderメソッドでは定数が足りません。それとも、私が定数を知らないだけなのでしょうか。

何か、良い方法を教えてください。宜しくお願いします。

Aベストアンサー

torokichiさんはじめまして。

APIのSHGetSpecialFolderLocationを使用すればよいのではないでしょうか?
参考URLを書いておきます。
そのペ-ジにいくつか特殊フォルダの取得方法が書いてありますので。
もちろんSHGetSpecialFolderLocationの使用方法も書いてあり、
サンプルもあります。それでは。

参考URL:http://www.geocities.co.jp/SilkRoad/4511/vb/shget.htm

Q救出ファイル復元 2の機能について

「救出ファイル復元 2」で画像ファイルJPEGの他にRAWファイル、拡張子(CR2)を復元出来るでしょうか。

キャノンの一眼デジカメを使っているのですが、他の復元ソフトでは、復元出来ませんでした。

Aベストアンサー

Vectorあたりで『ディスク・ファイル復旧』の項目で探せばみつかりそうですが。
要は,"復元ソフトで復元できるファイルがソフトに登録されている拡張子だけしかできない"ことですので,拡張子を選択できる復元ソフトを捜せばいいと思われます。

参考URL:http://www.vector.co.jp/vpack/filearea/win/util/disk/care/

QSystem.IO.Directory.GetFilesの順番

For Each strFileName As String In Directory.GetFiles("フォルダ名","*.TXT")
'なにか処理
Next strFileName


としてファイル名を読み込んで処理する場合、ファイル名でソートされて順番に出てくるような気がします。
どのような基準でソートされるのかを調べているのですが、はっきり明記されているものが見つかりません。

安心して使うために裏付けがほしいのですが、どこかに詳細な資料はないでしょうか?
よろしくお願いします。

Aベストアンサー

内部的に FindFirstFile / FindNextFile を使っているようだけど
http://www.microsoft.com/japan/msdn/net/general/win32map.asp

取得する順番は..
http://forums.belution.com/ja/vc/000/038/23.shtml

なるほど!

正式情報は
http://msdn.microsoft.com/library/en-us/fileio/fs/findnextfile.asp

The order in which this function returns the file names is dependent on the file system type. With the NTFS file system and CDFS file systems, the names are returned in alphabetical order. With FAT file systems, the names are returned in the order the files were written to the disk, which may or may not be in alphabetical order.

内部的に FindFirstFile / FindNextFile を使っているようだけど
http://www.microsoft.com/japan/msdn/net/general/win32map.asp

取得する順番は..
http://forums.belution.com/ja/vc/000/038/23.shtml

なるほど!

正式情報は
http://msdn.microsoft.com/library/en-us/fileio/fs/findnextfile.asp

The order in which this function returns the file names is dependent on the file system type. With the NTFS file system and CDFS file systems, the names are returned in alphabetical or...続きを読む

Q削除した画像ファイルの取り出しまたは復元方法

ごみ箱に入れてから削除したファイルの復元方法を教えてください。

以前にも同様の質問をしたのですが、その際に教えていただいた方法で確かにいくつかのファイルは復元することができました。

しかし、一番復元したい画像ファイル(jpeg形式)が復元できません、同時期に同じく削除したファイルは無事に取り出せたのですが肝心のファイルは取り出せません。指定するファイル名、フォルダ名などの間違いはないのですが何が原因で復元できないのか理解できません。

良きアドバイスをいただければ助かります。
宜しくお願いいたします。

Aベストアンサー

こういったファイル復元ソフトを利用してファイルを復活させます。

●FileRecovery(フリーウェア)

消去・欠損したファイルを復元するソフト。
http://www.pcinspector.de/download.htm

●復元(フリーウェア)
http://www.vector.co.jp/soft/win95/util/se192983.html

■FINALDATA(ファイナルデータ)フォトリカバリー3.0(有料)
http://www.finaldata.ne.jp/f_8_3.html

当然ながら復元できる確立は有料ソフトのほうが高いです。

これらを使っても復元できない場合はファイルが上書きされて完全に消えている可能性が高いです。

QSystem.Collections.Generic.Listのソートについて

お世話になります。vb.net2010で開発をしております。
System.Collections.Generic.ListにクラスをAddしたクラス変数をソートしたいと考えております。
コードを以下に記述します。

Dim list As New List(Of aaa)
Dim listWork As New aaa


' クラス変数に格納する
listWork.strA = "2015/02/01"
listWork.strB = "17:00"
listWork.strC = "タロウ"
' リストに追加する
list.Add(listWork)

' クラス変数に格納する
listWork.strA = "2015/02/02"
listWork.strB = "17:00"
listWork.strC = "ジロウ"
' リストに追加する
list.Add(listWork)

Public Class aaa
Public strA As String(日付型文字列)
Public strB As String(時刻文字列)
Public strC As String(任意の値)
End Class

このlistを日付型文字列でソートしたいのですが、いまいちうまくいきません。
sortメソッドはlistに実装されているようですが、使用方法が理解できていません。
実際にソートを行うことは可能なのでしょうか。
もし可能であれば、サンプルコードをご教示いただけますでしょうか。
恐れ入りますが、どなたかご教示いただければ幸いに存じます。

以上宜しくお願い申し上げます。

お世話になります。vb.net2010で開発をしております。
System.Collections.Generic.ListにクラスをAddしたクラス変数をソートしたいと考えております。
コードを以下に記述します。

Dim list As New List(Of aaa)
Dim listWork As New aaa


' クラス変数に格納する
listWork.strA = "2015/02/01"
listWork.strB = "17:00"
listWork.strC = "タロウ"
' リストに追加する
list.Add(listWork)

' クラス変数に格納する
listWork.strA = "2015/02/02"
listWork.strB = "17:00"
listWork.strC = "...続きを読む

Aベストアンサー

簡単な方法では,Comparisonを引数にとるSortメソッドを使います。
https://msdn.microsoft.com/ja-jp/library/w56d4y5z(v=vs.100).aspx

list.Sort(Function (x, y) String.Compare(x.strA, y.strA))

何箇所でも行うのであれば,IComaprer(Of aaa)を実装したクラスを用意して,そのインスタンスを渡すとよいでしょう。


ただし,元のプログラムでは,listに入っている要素が全て同じオブジェクトのインスタンスになっています。
Addする要素は,それぞれ別々にNewした要素にしないといけません。
現在のコードで,2回Addした直後にブレークポイントをおいて,listの各要素のフィールドの値を見てみるとよいでしょう。

Q「ウイルス感染ファイル」削除後のシステム復元でどうなる?

ウイルスバスターで幾つかのウイルス感染ファイル発見し全て削除しましたが、感染したファイルはシステムファイルでしたので少し心配でしたが削除しました。
そこで教えて頂きたいのですが、感染した日付以前でシステムの復元をする事によって削除されたシステムファイルは復元できるのでしょうか?一度削除されたシステムファイルはシステムの復元をしても二度と復元しないのでしょうか?

Aベストアンサー

以下WindowsXPという前提で・・・

>システムファイルでしたので少し心配でしたが削除しました。
通常、このままではシステムエラーが発生します。
しかし、Windowsには自動復旧機能があり、削除されたファイルをハードディスク上にあるCabファイルから呼び出して復旧させるようになっています。
従って、殆どの場合、削除されたシステムファイルを手動でインストールする必要はありません。

☆SFCの実行
もしシステムエラーが出る場合SFC(System File Checker)の実行をお勧めします。

1.CDドライブにOSのインストールディスクを入れておく。
2.「スタート」「コマンドプロンプト」または「ファイル名を指定して実行」で
「sfc /scannow」と入力して「OK」

「Windows XP professional のディスクを入れてください」という表示が出ることがありますがHome Editionであれば「無視」を選んでスキップしてください

>感染した日付以前でシステムの復元をする事によって削除されたシステムファイルは復元できるのでしょうか?
出来ないことはないでしょうが、あまりお勧めできません。
現在の状態が正常でない。
過去の状態の方が快適に操作できる。
という場合、それがいいかもしれません。
しかし、Windowsの設定というのは非常に広範囲にわたっており、現在と過去を比較して、どちらが適正かを判断するのは容易ではありません。
また、過去の復元ポイントの中には不正な設定が含まれている場合があり、間違って、そのポイントを選択することもあります。
ウィルス対策ソフトのサイトでは一旦復元設定を無効にして、過去の復元ポイントを全て消去することを推奨しています。

>一度削除されたシステムファイルはシステムの復元をしても二度と復元しないのでしょうか?
間違った操作をすると汚染されたファイルが復元されてしまいます。
一旦復元設定を無効にして、過去の復元ポイントを全て消去することで汚染されたファイルは二度と復元しません。

以下WindowsXPという前提で・・・

>システムファイルでしたので少し心配でしたが削除しました。
通常、このままではシステムエラーが発生します。
しかし、Windowsには自動復旧機能があり、削除されたファイルをハードディスク上にあるCabファイルから呼び出して復旧させるようになっています。
従って、殆どの場合、削除されたシステムファイルを手動でインストールする必要はありません。

☆SFCの実行
もしシステムエラーが出る場合SFC(System File Checker)の実行をお勧めします。

1.CDドライ...続きを読む

QSystem.Net.Sockets.SocketException が発生

ちょっと困った事になってしまったので質問させて頂きます

VB.NETで作成されたクライアント&サーバー型のシステムがあり
現在サーバー側はWindows2003サーバーで稼動しています

過去のテスト環境が使用できなくなった為にテストサーバーをを再構築することにりました

残されたドキュメントを参照しながら
・サーバープログラム導入
・DBの設定
・サービスの起動
・ファイアウォールの解除

上記を行いクライアントから接続を試みたところ
下記のエラーが発生しました

System.Net.Sockets.SocketException: 対象のコンピュータによって拒否されたため、接続できませんでした。

当方Windows2003に詳しくないので、何処の設定を変更すればよいのかアドバイスを頂きたく御願い致します

稼動中のサーバー:Windows2003 StandardEdition
再構築中のサーバー:Windows2003 R2 StandardEdition SP1

この違いも関係しているのでしょうか?
宜しく御願い致します

ちょっと困った事になってしまったので質問させて頂きます

VB.NETで作成されたクライアント&サーバー型のシステムがあり
現在サーバー側はWindows2003サーバーで稼動しています

過去のテスト環境が使用できなくなった為にテストサーバーをを再構築することにりました

残されたドキュメントを参照しながら
・サーバープログラム導入
・DBの設定
・サービスの起動
・ファイアウォールの解除

上記を行いクライアントから接続を試みたところ
下記のエラーが発生しました

System.Net.Sockets.S...続きを読む

Aベストアンサー

そういう理解もごもっともなんですが・・・

つまり原因は旧サーバと新サーバ間に何かしら(設定?Ver差異?)の相違があって、
プログラムはその相違を吸収できる実装ではないのだと思うんです。

プログラムがバグかどうかはおいておいて、その吸収できていない相違は何なのか?
これを追求するにはソースを解析するしかないと思います。(=デバッグ)
※ポイントになる部分だけでもいいんです。

というのも、ソースが公開されていない現状では、どんな実装がなされているのかは
この投稿を読んでいる人には(私を含めて、他のどんな人でも)分からない訳です。
それをどんな書き方をされているのか推測で、あぁでもないこぉでも無いとやっても、、、

一向に目的に近づけないのをご理解していただけますでしょうか。。。


独自に実装したサービスではなく、標準の機能についての事柄であれば、
他の方からも参考になる意見はどんどん出ると思うのですが。

Q復元ソフトのふと感じた疑問 -ファイル名を削除したい-

先日、復元ソフトを使用していたときに感じたことなのですが
(使用ソフトは「復元」です。)
ファイルを復元する際の手順で削除したファイルが検索できますよね。
このファイル検索の時に、HITしないようにファイル名を完全に削除したい場合はどのようにすればいいのでしょうか??

例えば、「●●との秘密旅行001.jpg」のファイルを削除したとします。
その後、復元ソフトで検索をかけるとファイルを復元しなくてもファイル名を見ただけで怪しいファイルとわかってしまいますよね。
復元ソフトの検索で、表示されなくする方法か、別名に変える方法があるのなら教えてください。

Aベストアンサー

95159さんが求めていらっしゃるのは以下の方法ではないでしょうか。

フリーの復元ソフトに「DataRecovery」というものがあります。このフリーソフトには「削除したファイル」の名前を時間をかけず簡単に消去できる機能が付いています。

『DataRecovery』
http://www.vector.co.jp/soft/win95/util/se382922.html

■使い方
起動させる→該当ドライブをクリック→[スキャン]ボタンをクリック→削除したファイルの表示完了→「目的のファイルが見つかりましたか?」と出てきたら[キャンセル]をクリック→名前を消去したいファイルをクリックするか、名前を消去したい複数ファイルを左クリックしながら選択する→[消去]ボタンをクリック→[OK]をクリック

これで、名前を消せます。しかしながら完璧ではなくて、一部消せないこともあります。
(「DataRecovery」を再起動してもう一度ドライブをスキャンすると消せなかったファイルが表示されます)

参考URL:http://www.vector.co.jp/soft/win95/util/se382922.html

95159さんが求めていらっしゃるのは以下の方法ではないでしょうか。

フリーの復元ソフトに「DataRecovery」というものがあります。このフリーソフトには「削除したファイル」の名前を時間をかけず簡単に消去できる機能が付いています。

『DataRecovery』
http://www.vector.co.jp/soft/win95/util/se382922.html

■使い方
起動させる→該当ドライブをクリック→[スキャン]ボタンをクリック→削除したファイルの表示完了→「目的のファイルが見つかりましたか?」と出てきたら[キャンセル]をクリック→名...続きを読む

QC#でSystem.IO.FileFormatEx

VB2010で
System.IO.FileFormatException
をThrowしているコードがあります。

これをC#2010にコンバートしたのですが
上記箇所に於いて

型または名前空間名 'FileFormatException' は名前空間 'System.IO' に存在しません。アセンブリ参照が不足しています。

というエラーが出てしまいます。

何を参照設定すればよいのでしょうか。
またはこのような処理は不可なのでしょうか。

Aベストアンサー

http://msdn.microsoft.com/en-us/library/system.io.fileformatexception.aspx
>Assembly: WindowsBase (in WindowsBase.dll)

#Q6895736もそれっぽい解説は見つけたんだが、自分の理解が今ひとつ固まってないから保留中。


人気Q&Aランキング

おすすめ情報