2012-09-26 23 views
1

我正在開發一個簡單的CLI程序,允許2個或更多的用戶(在同一局域網或互聯網上)共享他們的文件。句柄的文件名與C中的空格

它是如何工作的:

  1. 打開終端
  2. 運行程序
  3. 拖放一個或多個文件

我的問題是:我怎樣才能使程序讀取那些在他們的名字中有空格的文件?

因爲如果用戶拖拽一個文件是沒有問題的(strtok的,直到\n),但如果用戶拖動到終端超過1個文件,我有一個問題,因爲我不能使用strtok(input, ' ');如果文件名中有空格。

例子:

Files to share: /home/$USER/tryme /home/$USER/try me with space /home/$USER/file_ok 

我能做些什麼?

+0

我想你需要給路徑添加引號。 – dutt

+0

如果我使用GNOME終端引用了路徑,但是如果我使用KDE,那麼沒有引號:( – polslinux

+0

那麼我認爲你有三個選擇,寫一個gui來添加文件;手動添加引號或者像alex所說的那樣做,在空格前加\以代替文件周圍的空格。 – dutt

回答

0

如果文件名有空格,那麼它應該在每個空格之前有一個\來轉義它們,否則預計它們會是多個文件。

0

你只是不能拖放你的文件到終端,因爲它採取的路徑「原樣」,所以你需要修改路徑字符串後,他們加載到您的程序,或者只是做一個小接口(使用gtk),它會更容易。

+0

GTK +簡單不是一個很好的匹配:D – polslinux

+0

哈哈是啊,但它是一個例子,只是沒有任何界面庫 – Weacked

+0

與C我除了GTK沒有太多的選擇:( – polslinux