繁體系統的IIS(FTP)伺服器,無法支援簡體中文!
解決:
1.改用支援簡體中文的FTP SERVER來架設!
2.限制檔案名稱僅可為「繁中」、「英數」!
3.將簡體轉為繁體,再上傳至FTP!
4.將FTP檔案存為(sn)-Guid,
而資料庫則存為 sn, 檔名+Guid as 檔名,
程式顯示時取檔名, 下載時則取(sn)-Guid...
Path.GetFileName(txbPath.Text.Trim).ToString & "+" & BitConverter.ToInt64(Guid.NewGuid().ToByteArray(), 0).ToString
傳回不重覆的長度 19 GUID 數字
參考:
Directory 類別
DirectoryInfo 類別
HOW TO:列舉目錄和檔案
HOW TO:逐一查看目錄樹狀結構 (C# 程式設計手冊)
C#-批次處理目錄下所有檔案的方法
[C#]使用 Path 類別取得檔案或目錄路徑資訊
[C#]Winform選擇目錄路徑(FolderBrowserDialog)與選擇檔案名稱(OpenFileDialog)的用法
[programming-c#]把目錄下的檔案列出來, DirectoryInfo, StreamWriter
C#資料夾選擇框的實現(C#選擇資料夾,C# 打開資料夾,C# 流覽資料夾,C#怎麼選擇資料夾)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
//需加入參考 Microsoft.VisualBasic
using Microsoft.VisualBasic;
namespace trans2zhtw
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (!System.IO.Directory.Exists(this.txtDirectoryPath.Text))
{
//throw new ArgumentException();
MessageBox.Show("請選擇目錄!!");
return;
}
foreach (FileInfo file in RootDirs.GetFiles())
{
//MessageBox.Show(file.FullName);
//MessageBox.Show(file.Directory.FullName); = MessageBox.Show(file.DirectoryName);
FileSystem.Rename(file.FullName, file.DirectoryName + @"\" + Strings.StrConv(file.Name, VbStrConv.TraditionalChinese, 2052));
}
}
DirectoryInfo RootDirs;
DirectoryInfo[] SubDirs;
FileInfo[] RootFiles;
FileInfo[] SubFiles;
private void button3_Click(object sender, EventArgs e)
{
richTextBox1.Clear();
txtDirectoryPath.Clear();
//選擇目錄
FolderBrowserDialog path = new FolderBrowserDialog();
//MessageBox.Show(path.ShowDialog().ToString());
//if (System.IO.Directory.Exists(path.SelectedPath))
if(path.ShowDialog()==DialogResult.OK)
{
this.txtDirectoryPath.Text = path.SelectedPath;
//System.IO.DirectoryInfo
RootDirs = new DirectoryInfo(txtDirectoryPath.Text);
//取得所有檔案(含子目錄)
RootFiles = RootDirs.GetFiles();
//取得所有目錄(含子目錄)
SubDirs = RootDirs.GetDirectories();
richTextBox1.Text += "[主目錄][" + RootDirs.Name + "]" + "\n";
foreach (FileInfo file in RootDirs.GetFiles())
richTextBox1.Text += file.Name + "\n";
richTextBox1.Text += "\n";
//取得主目錄下的子目錄, 不包含子目錄下的子目錄...
foreach (DirectoryInfo sdir in SubDirs)
{
richTextBox1.Text += "[子目錄][" + sdir.Name + "]" + "\n";
//取得目各子目錄下所有檔案
SubFiles = sdir.GetFiles();
foreach (FileInfo file in SubFiles)
richTextBox1.Text += file.Name + "\n";
}
}
}
}
}
[C#] 簡體亂碼轉換
繁體的IIS FTP 不能上傳簡體文件
請教簡體XP顯示繁體中文問題!
怎样才能是繁体和简体的操作系统都能看到简体FTP服务器里面的数据
[VB.NET]中文繁簡體轉換
在 VB.Net 中使用 StrConv 函數進行繁簡字體轉換
如何判断用户在Textbox输入的字符是否为繁体字
VB.NET判断字符是否是GB2312-80的汉字
简体繁体判断
FileSystem.Rename 方法
【VB.Net】使用rename修改檔名
如何使用FileInfo修改檔名
不同語系的轉碼、編碼 / HttpUtility.UrlEncode,Server.UrlEncode兩者差異
如何用 VB 或 VB.Net 來撰寫 ASP 的 Server.URLencode 函數
[SQL] 簡體字存入亂碼解決方式
參考:C#
How can I rename a file in C#?
C# 繁簡轉換效能大車拚
[C#]繁簡轉換好用的類別庫-Microsoft Visual Studio International Pack
C#簡繁轉換
C#中汉字的繁体和简体的相互转换的两个方法!
沒有留言:
張貼留言