2011-01-05 109 views
1

Ussualy我不寫信給論壇,只是讀我需要的信息。 這次我遇到了很大的問題,我需要專家的幫助。在GDI +,PNG圖像到UNC中發生了一般性錯誤

我想將圖片從圖片框保存到文件。

它的工作原理,當我使用

Image.Save("X:\\Files\\logo.png"); 

但我需要的圖像保存到UNC位置。 所以創建UNC從X:\文件

當我嘗試圖像保存爲

Image.Save("\\\\\PC\\Files\\logo.png"); 

我變得愚蠢GDI +錯誤,沒有任何信息..

我嘗試使用的MemoryStream保存它,沒有什麼是解決.. 我想它4小時,並沒有成功..

如果我映射網絡驅動器\\ PC \ files驅動器盤符可以說L:\ 然後保存圖像爲

Image.Save("L:\\logo.png"); // it works ! 

確定什麼是你的孩子?再次..

Image.Save("X:\\Files\\logo.png");   // WORKS 
Image.Save("\\\\PC\\Files\\logo.png"); // GDI+ ERROR 
Image.Save("L:\\logo.png"); // DOES THE JOB (it is network drive from \\pc\files) 

好吧,現在你會問我在共享文件夾上創建了什麼perrmisions。 我加了用戶大家都並設置寫權限,讀&執行。

問題是,實際上我想將映像保存到NAS驅動器,所以我不確定它具有什麼Sabma安全權限(每個人,來賓,不知道)還是換句話說它不像點擊那麼簡單共享文件夾並播放權限..

我該如何解決這個bug的實現?我嘗試過Image.Clone(),MemoryStrean和所有與Google Uncle一起發現的東西,但沒有做任何工作,我認爲這個問題不是無法訪問的Image,但它與UNC位置的權限有關,但只是不知道爲什麼它可以工作,如果我創建網絡驅動器沒有特殊的用戶登錄..我只是不能說客戶創建網絡驅動器它必須與UNC路徑一起工作!

+1

'\\\\\ PC \\ Files \\ logo.png'在開頭有一個'\'太多了。 – Gabe 2011-01-05 20:07:32

+0

您使用的是'GDI +',還是來自.NET的'Image'類? – 2011-01-05 20:33:22

回答

0

我說你剛纔算錯的反斜槓 - 應該有4,而不是5.嘗試:

Image.Save("\\\\PC\\Files\\logo.png"); 
0

謝謝你馬克對此事發表評論。我沒有5個反斜槓,但我沒有更多的東西傻...

TextBox1.Text = "\\\\\\\\PC\\Files"; // through GUI I add "\\\\PC\Files" 

然後

string path = TextBox1.Text;  
Image.Save(path + "\\" filename"); 

,你可以在自身路徑中的字符串是 「\\\\ PC \文件」!錯誤! :=) 它必須是\\這樣的解決方案是

TextBox1.Text="\\\\PC\\Files"; // or if I add this string by GUI "\\PC\Files" 

而且東西后面我愚蠢的輸入文本框。

if (path.StartsWith("\\\\\\\\") || path.Contains(":")) 
{ 
    // Problem was that in TextBox were really 4 backslashes so it jumps here 
    image.Save(path,ImageFormat.Png); 
    // and because string started as "\\\\" it throws GDI+ error 
} 
else 
{ 
    string path2= Directory.GetCurrentDirectory()+"\\"+path; 
    image.Save(path2, System.Drawing.Imaging.ImageFormat.Png); 
} 

是啊,我是個白癡:=)

我做了修復,這是它的方式應該是:我很抱歉,我濫發計算器=) 。

0

我認爲這不是一個代碼問題,它是由於安裝了組件,我也遇到了同樣的問題,並在普通服務器上傳後自行解決。

相關問題